通过HTTP实现大文件上传

4
我需要创建一个基于Apache Tomcat的Web应用程序,它可以通过HTTP(多部分表单POST请求)接收大型文件(100MB或更大)。
我尝试了Apache Commons Fileupload,它适用于较小的文件(20-40 MB)。但是对于大文件不起作用。
除了在客户端使用Java applet和调整Tomcat设置之外,有没有其他明显的方法来实现大文件上传?
更新1(03.10.2013):这是当上传约120个文件时在服务器端得到的异常。

你确定具体是什么出了问题吗?是客户端错误吗?服务器拒绝上传吗?还是网络问题? - Thilo
http://www.cs.tut.fi/~jkorpela/forms/file.html - kaushik0033
@Thilo 请查看更新1中的异常截图。 - Glory to Russia
似乎是Commons Fileupload中的一个bug。 - Thilo
4个回答

5
我找到了另外一个解决方案。在FileUpload的网站上,有一篇关于流式API的页面
那个页面上的代码片段解决了我的问题。

2

如果是Tomcat出现错误,您可以在web.xml中增加最大上传文件大小和最大请求大小。

例如,最大上传为50MB:

<multipart-config>
    <!-- 50MB max -->
    <max-file-size>52428800</max-file-size>
    <max-request-size>52428800</max-request-size>
    <file-size-threshold>0</file-size-threshold>
</multipart-config>


如果您在Tomcat前面有Apache或Nginx作为代理,您可能需要在服务器配置中增加它们的上传/POST大小值。


1

0

请参考这里

可以使用plupload完成。如果您不想使用applet,可以使用flash、html5等。任意数量和大小的文件都可以上传。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接