如何限制java servlet中上传的文件大小

时间:2016-09-10 20:34:24

标签: java servlets

我需要使用html type='file'将图像从客户端上传到服务器,这可以正常工作,到目前为止我可以从客户端发送文件并在我的servlet上接收,但现在我需要限制图像大小servlet最大2MB,如果它大于2MB,我需要向客户端发送一个错误,说明图像大小。

这里我收到的servlet代码发送了图片:

public void doPost(HttpServletRequest request, 
      HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    MultipartRequest multipartRequest = new MultipartRequest(request, "D:\\");
    out.print("Successfully Uploaded");
}

到目前为止它接收图像并将其保存在D:目录中,我不想先保存图像,然后检查图像大小,但要向MultipartRequest说些什么,如果你收到的更高超过2MB发送错误。

提前致谢:)

3 个答案:

答案 0 :(得分:0)

由于您尚未指定什么是“MultipartRequest”类,我假设您使用的是oreilly包。

它有一个public MultipartRequest(HttpServletRequest request, String saveDirectory, int maxPostSize) throws IOException构造函数,它接受最大文件大小参数。

如果上传的文件大小超过maxPostSize,则会抛出IOException。您可能会捕获此异常并返回错误响应。

答案 1 :(得分:0)

您可以在创建MultipartRequest实例时限制上传文件的大小。

  • MultipartRequest(javax.servlet.http.HttpServletRequest request, java.lang.String saveDirectory)
  

构造一个新的MultipartRequest来处理指定的请求,将所有上传的文件保存到给定目录,并将上传大小限制为1兆字节。

  • MultipartRequest(javax.servlet.http.HttpServletRequest request, java.lang.String saveDirectory, int maxPostSize)
  

构造一个新的MultipartRequest来处理指定的请求,将任何上传的文件保存到给定的目录,并将上传大小限制为指定的长度。

答案 2 :(得分:-2)

将其用于html文件并立即尝试
<input type = "file" name = "file" size = "50" /> 并使用尺寸标签