【问题标题】:Getting File Size - Apache Commons File Upload获取文件大小 - Apache Commons 文件上传
【发布时间】:2012-01-04 10:34:44
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    如果您在ServletFileUpload 上设置sizeMax 属性,则一旦读取的数据超过一定数量,请求就会被拒绝。

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

    【讨论】:

    • 嗨 - 谢谢!我收到此错误消息 - “字段 uploadFile 超出其最大允许大小 20 个字符”。字符与字节相同吗?有没有办法指定字节?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 2011-01-10
    • 2015-12-23
    • 2011-05-10
    • 2012-06-01
    • 2011-11-21
    相关资源
    最近更新 更多