我正在使用@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);
}
}
答案 0 :(得分:1)
确保服务器允许用户上传超过此数量的内容。例如,tomcat配置限制上传大小(maxPostSize
中的server.xml
),默认情况下限制为2MB。
不仅如此,如果上传时间过长,读/写超时也会关闭连接!(例如低带宽)
您可以打印catch
例外,以确定是否有任何问题可以在服务器中获取。
(p.s你的SQL方式,是如此可怕,数据源池?)