Servlet多部分配置无法上传较大的文件

时间:2017-07-05 20:31:38

标签: java servlets

我正在使用@MultipartConfig将文件上传到数据库,但它仅适用于小于5 MB的小文件。如何改进我的代码以使用更大的文件?

@WebServlet(name = "Upload", urlPatterns = {"/upload"})
@MultipartConfig(maxFileSize = 16177215)
public class Upload extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        InputStream in = null;

        Part filePart = request.getPart("pdffile");

        if (filePart != null) {
            in = filePart.getInputStream();
        }
        Connection con = (Connection) getServletContext().getAttribute("Connection");
        String sql = "INSERT INTO storepdf (pdffile) VALUES (?)";
        try (PreparedStatement stat = con.prepareStatement(sql)) {
            if (in != null) {
                stat.setBlob(1, in);
            }
            int i = stat.executeUpdate();
            request.setAttribute("res", i);

        } catch (SQLException e) {

        }
        request.getRequestDispatcher("finish.jsp").forward(request, response);
    }
}

1 个答案:

答案 0 :(得分:1)

确保服务器允许用户上传超过此数量的内容。例如,tomcat配置限制上传大小(maxPostSize中的server.xml),默认情况下限制为2MB。

不仅如此,如果上传时间过长,读/写超时也会关闭连接!(例如低带宽)

您可以打印catch例外,以确定是否有任何问题可以在服务器中获取。

(p.s你的SQL方式,是如此可怕,数据源池?)