通过HTTP实现大型文件上传

时间:2013-10-03 11:32:16

标签: java http tomcat file-upload

我需要创建一个基于Apache Tomcat的Web应用程序,它可以通过HTTP(多部分表单POST请求)接收大量(100 MB或更多)文件。

我尝试了Apache Commons Fileupload,它适用于较小的文件(20-40 MB)。但它不适用于大文件。

除了

之外,是否有任何明显的方法可以实现大文件上传
  1. 在客户端使用Java applet,
  2. 调整Tomcat的设置?
  3. 更新1(03.10.2013):以上是我在上传2个文件时在服务器端获得的例外情况。总大小为120。

    Exception

4 个答案:

答案 0 :(得分:5)

我找到了另一个解决方案。在FileUpload的网站上,有一个关于Streaming API的page

该页面上的代码段解决了我的问题。

答案 1 :(得分: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作为代理,则可能必须在服务器配置中增加其上传/发布大小值。

答案 2 :(得分:1)

在Tomcat maxPostSize配置文件中设置HTTP连接器的server.xml属性值:

<Connector port="8080" ... maxPostSize="<high_file_size_value>" ...>

Tomcat参考文档:http://tomcat.apache.org/tomcat-7.0-doc/config/http.html#Attributes

答案 3 :(得分:0)

参考here

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