获取文件大小 - Apache Commons文件上传

时间:2012-01-04 10:34:44

标签: servlets file-upload apache-commons-fileupload

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

我使用Fileitem.getSize()方法获取大小,我猜这是读取整个文件以确定大小。如果用户尝试上传大小为几GB的文件,那么它不会在应用程序服务器上增加很多开销吗?有没有更好的替代方法来获取文件大小?

1 个答案:

答案 0 :(得分:1)

如果您在sizeMax上设置了ServletFileUpload属性,那么只要读取了超过一定数量的数据,该请求就会被拒绝。

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