【发布时间】:2019-09-28 07:55:32
【问题描述】:
我在我的 java 项目中使用 Apache commons fileupload 1.4 库。 我有一个带有文件输入和一些隐藏字段的经典表单的 html 部分。
我在仅使用 Firefox >= 52 上传 >500ko 左右的文件时遇到问题
它适用于 Chrome 或 Internet Explorer 中 10mo 的文件。 但是对于 Firefox,我在提交表单后等待了几分钟后超时。
经过一些调试,我看到负责超时的代码是:
List<FileItem> items = (new ServletFileUpload(new DiskFileItemFactory())).parseRequest(request);
原因等待的部分是“parseRequest”。
我尝试在 IntelliJ 中使用调试器调试请求的内容,但无法以原始格式复制此请求对象的整个内容值。
它在这些情况下工作: - Firefox:版本
没有文件大小限制,好像取决于请求大小,因为解析请求部分太费时间了……
我在两种情况下收到带有 Firefox 扩展的 HTTP 请求。 一个生成上传 3mo 的文件不起作用(请求文件很大,是上传文件大小的 3 倍): https://code.empreintesduweb.com/13561.html
一个生成的上传 200ko 的文件有效(请求文件很小): https://code.empreintesduweb.com/13560.html
其实主要的区别是在 Chrome 或者 IE 中,我在请求头中没有上传文件的原始内容:
带有 的部分: 对象 溪流 …… 端流 结束对象
仅在 Firefox 中出现...
【问题讨论】:
标签: http servlets upload request apache-commons-fileupload