【问题标题】:Apache commons file upload alternativesApache commons 文件上传替代方案
【发布时间】:2011-03-26 06:16:03
【问题描述】:

我想知道 Java 文件上传 API 的 StackOverflow 用户过去使用过什么并推荐使用?快速的 Google 搜索似乎表明最常用的 API 是 Apache Commons File Upload(当前为 1.2.1),但是,我们在使用这个库时遇到了一些问题,我们无法处理更大的文件解决。

有没有人找到他们推荐的可靠文件上传库(Apache Commons 除外)?

编辑:Streaming API 不是选项,因为它使用导致我们问题的相同底层类。

EDIT2:我们最初的问题似乎是负载平衡的某种问题。我们的克隆实例使用 Apache/AJP1.3,实时实例使用 Zeus XTM。通过使用服务器 IP 而不是主机名绕过负载平衡器似乎会导致问题消失。

EDIT3:这原来是客户端防火墙的问题。当他们说他们肯定知道这不是防火墙问题时,他们似乎……呃……并不完全真实。

【问题讨论】:

  • 什么样的问题?内存相关?
  • 导致问题的文件超过 7MB。我们测试过的最大容量是 600MB。发生的情况是浏览器中的上传失败,我们最终在日志中得到一个堆栈跟踪,指出流意外结束。在 Commons File Upload JIRA 实例 (issues.apache.org/jira/browse/FILEUPLOAD-143) 上有一个与此相关的未解决的错误。最后一位评论者是我自己。这不是 Flash 问题,这发生在浏览器中,但仅适用于 Windows XP 和 Vista 客户端。我们完全感到困惑。
  • 我就这个问题提出了另一个 StackOverflow 问题 (stackoverflow.com/questions/3263809/…),但似乎没有人知道答案。
  • MultipartStream 文档指出,如果底层输入流未能遵循所需的语法 (RFC 1867),则会引发此特定错误 (MalformedStreamException)。但这不可能是因为您使用的是浏览器。您是否尝试过其他版本或夜间版本?
  • 嗯,我们已经尝试降级到早期版本,但没有奏效。但我们还没有尝试过每晚构建 - 我猜这是我们可以尝试的剩余事情之一。

标签: java file-upload upload uploading


【解决方案1】:

如果你有时间或内存相关的问题,你看过commons文件上传的streaming API吗?

【讨论】:

  • 是的。我们查看了源代码,发现它使用了我们遇到问题的类 - org.apache.commons.fileupload.MultipartStream。
【解决方案2】:

看看这些设置,默认限制为 8MB

upload_max_filesize
post_max_size

【讨论】:

  • 这些设置在哪里?在公共文件上传本身?我有一个快速的谷歌,它们似乎是 Apache 设置。我们没有使用 Apache..
  • 在文档 (commons.apache.org/fileupload/using.html) 中,它说您可以通过 upload.setSizeMax(yourMaxRequestSize); 设置上传的最大上传大小 - 但此值的默认值为 -1,没有限制。
猜你喜欢
  • 2011-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
  • 2010-11-11
  • 2011-01-10
  • 1970-01-01
  • 2012-06-09
相关资源
最近更新 更多