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

问题描述 投票:0回答:3

我需要使用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,则发送错误。

提前致谢:)

java servlets
3个回答
0
投票

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

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

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


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
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.