gpt4 book ai didi

java - 如何知道 httpservletrequest 是否包含一些文件/图像?

转载 作者:可可西里 更新时间:2023-11-01 16:21:32 29 4
gpt4 key购买 nike

在下面的代码中:

public static MultipartEntity buildMultiEntity(final SlingHttpServletRequest request) {
MultipartEntity multipartEntity = null;
final Map<String, RequestParameter[]> params = request.getRequestParameterMap();
if(params.containsKey("myfile")) {
multipartEntity = new MultipartEntity();

for (final Map.Entry<String, RequestParameter[]> pairs : params.entrySet()) {
final String key = pairs.getKey();
final RequestParameter[] parameterArray = pairs.getValue();
final RequestParameter param = parameterArray[0];
InputStream inputStream = null;
try {
inputStream = param.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
multipartEntity.addPart(key, new InputStreamBody(inputStream, param.getFileName()));
}
}
return multipartEntity;
}

我判断请求是否有如下图片

if(params.containsKey("myfile"))

如何识别,如果我不知道请求有图片,输入的图片文件名是什么?

最佳答案

我认为您可以为此目的尝试使用附件。为此,您需要在 UI 的表单中添加 enctype="multipart/form-data"。会是这样的

<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
// some other inputs
</form>

和服务器端

@WebServlet("/upload")
@MultipartConfig
public class UploadServlet extends HttpServlet {
// ...
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Part filePart = request.getPart("file");
String fileName = filePart.getSubmittedFileName();
InputStream fileContent = filePart.getInputStream();
// some job here
}

private static String getFileName(Part part) {
for (String cd : part.getHeader("content-disposition").split(";")) {
if (cd.trim().startsWith("filename")) {
String fileName = cd.substring(cd.indexOf('=') + 1).trim().replace("\"", "");
return fileName.substring(fileName.lastIndexOf('/') + 1).substring(fileName.lastIndexOf('\\') + 1); // MSIE fix.
}
}
return null;
}

关于java - 如何知道 httpservletrequest 是否包含一些文件/图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31534159/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com