1

我正在使用 Servlet 和 JSP 构建一个 Web 应用程序。我已经使用 apache commons 库构建了一个文件上传功能。我想限制用户上传大文件 - 因此将限制设置为 20 MB。

我正在使用Fileitem.getSize()我猜是读取整个文件以确定大小的方法来获取大小。如果用户尝试上传几 GB 大小的文件,那会不会在应用服务器上增加很多开销?获取文件大小是否有更好的选择?

4

1 回答 1

1

如果您将sizeMax属性设置为 on ServletFileUpload,那么一旦读取超过一定数量的数据,请求就会被拒绝。

此外,如果您使用DiskFileItemFactory,那么您可以设置一个阈值,以便将超过一定大小的文件流式传输到本地磁盘而不是保存在内存中,从而防止大文件。

于 2012-01-04T10:45:17.917 回答