diskfileupload上传大文件失败?教你几招轻松解决!

吉云

今儿个,咱来聊聊我捣鼓那个 DiskFileUpload 的事儿。一开始真没少走弯路,不过总算是给弄明白,现在就来跟大伙儿分享分享我的实战经验。

遇到的坑

我这不是寻思着上传个文件嘛简单!直接就上 FileUpload 控件。小文件还嗖嗖地就上去。可一换成大文件,坏,浏览器直接罢工,报个“您正在查找的页当前不可用”的错。我当时就懵,这啥情况?

diskfileupload上传大文件失败?教你几招轻松解决!

然后我就开始各种搜,各种试。有人说是服务器权限问题,我赶紧去瞅瞅我的 /upload 目录,权限给的足足的,没毛病!

后来又看到有人说,用那个啥 public static ArrayList files 变量来存临时文件,文件大也会出问题。我一想,我这也没用这玩意儿,难道是控件本身的问题?

解决过程

我又开始琢磨,是不是上传文件大小有限制?果然,查资料才知道,FileUpload 默认最大只能传 4M 的文件。怪不得我那个大文件传不上去!

知道原因,解决起来就好办。有两种方法:

    diskfileupload上传大文件失败?教你几招轻松解决!

  • 一种是直接在代码里头,用 FileItem 的 getSize 方法判断文件大小,超就给它拦住。
  • 另一种更直接,用 DiskFileUpload 的 setSizeMax 方法,直接设置一个最大值,比如我给它设个 2M,setSizeMax(1024 1024 2),这样一来,超过 2M 的文件就别想上传。

我试试第二种方法,还真管用!大文件也能顺利上传。不过这还没完。

后来我又遇到一个问题,提示“未显示页面,因为请求实体过大”。这回又是啥情况?

继续查资料,原来是 * 这边也有个默认的文件大小限制。得,还得改!

diskfileupload上传大文件失败?教你几招轻松解决!

最终搞定

我在配置文件里把 * 的文件大小限制也给改,这下总算是彻底搞定。大文件、小文件都能随便传,再也不用担心出啥幺蛾子。

所以说,这玩意儿看着简单,里头

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]