【发布时间】:2012-08-07 15:51:39
【问题描述】:
也许我的问题对于this one 来说是多余的,但我不知道如何处理多部分 HTTP 请求。
我写了一个 HTTP 请求,它使用 POST 来发送一个文件和一个字符串。如何在我的 Servlet 的服务器端获取两者?
这就是我所做的。我走对了吗?
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Gson gson = new Gson();
Status status = new Status();
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if(isMultipart){
status.setSuccess(true);
status.setDescription("It is OK.");
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(MAX_MEMORY_SIZED);
factory.setRepository(new File(ADRESS_WHERE_I_WANT_TO_PUT_THE_FILE));
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(MAX_FILE_SIZE_TO_BE_UPLOADED);
try {
List<FileItem> items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
... // WHAT TO DO HERE TO GET MY STRING AND MY FILE ???
}
}
else{
status.setSuccess(false);
status.setDescription("Not multipart.");
}
response.setContentType("application/json;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter output = response.getWriter();
output.write(gson.toJson(status));
output.flush();
}
【问题讨论】:
-
在那个答案旁边还有一些来自 apache 的库,可以让你完全做那种请求
-
但是你是怎么做到的呢?
-
在 http apache evgenyg.wordpress.com/2010/05/01/…, pro-programmers.blogspot.de/2009/06/… 中检查这些链接以了解多线程和多部分
-
还是谢谢你,我终于找到了一次又一次的尝试!
标签: java servlets file-upload multipart