【问题标题】:What to do in my Servlet, on the server side, to handle a Multipart POST?在我的 Servlet 中,在服务器端如何处理 Multipart POST?
【发布时间】: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();
}

【问题讨论】:

标签: java servlets file-upload multipart


【解决方案1】:

我会在servlets.com 上查看MultipartParser

来自网站:

重新发明轮子没有意义——这里有一些 servlet 支持我写的你可以使用的类。最著名的是文件 上传包MultipartRequest和MultipartParser

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 1970-01-01
    相关资源
    最近更新 更多