通过html格式上传大文件(超过2 GB)

时间:2011-02-19 20:26:40

标签: html http file-upload large-files

有没有上传超过2 GB的文件,使用简单的html表单上传?以前我一直在使用分块通过silverlight上传大文件(将一个大文件分成多个段然后逐个上传段然后在服务器上重新组合段)。

现在,我们要求我们只需要使用简单的html(尽管是GWT)表格上传。如果有办法以这种方式上传大文件,请指导我。

如果使用简单的html无法做到这一点,那么任何人都可以指导我如何划分&使用flex?

分段上传文件

4 个答案:

答案 0 :(得分:37)

使用HTML5 File API上传大文件。它具有切片的概念,因此您可以上传大文件。

var reader= new FileReader();
reader.onload=function(e){

//do whatever you want with result
}
var blob = file.slice(startingByte, endindByte);//slicing file
reader.readAsBinaryString(blob);

<强> FileSystem Tutorial

<强> File API tutorial

答案 1 :(得分:36)

HTTP POST请求大小的限制通常不在HTML方面。服务器端的限制更多。需要将Web服务器配置为接受大型POST请求。默认值通常通常为2GB,服务器通常会返回HTTP 500错误。默认限制通常可以增加到4GB,但除此之外的任何内容都将达到32位系统的边界。在具有64位OS的64位系统上,理论边界要高得多,16EB。

如果将Web服务器配置为接受大的POST请求不是一个选项,或者当您想要超出Web服务器的限制时,那么除了在客户端拆分文件并重新组装服务器中的部件之外别无选择侧。

由于HTML只是一种标记语言,因此它不提供拆分文件的工具。你必须使用像C#(Silverlight)或Java(Applet)这样的普通编程语言来处理你的网页提供的小应用程序的风格。也许它也可以用Flash或Flex,但不要把我钉在那上面,因为我没有。

说,FTP是比HTTP通过网络传输(大)文件更好的选择。我会重新考虑使用HTTP的选择。

答案 2 :(得分:0)

我们创建了一个Web应用程序(https)(使用django / python),将大文件上传到sqlserver数据库中。为此,我们分块读取文件,通过sftp传输到服务器,然后将大量文件插入sqlserver。我们以1 GB文件大小为基准对其进行了基准测试,并且大约1分钟左右就结束了处理。

答案 3 :(得分:-3)

将Arivu服务器用于java后端服务器 gradle - &gt;编译'org.arivu:nioserver:1.0.3',文件大小没有约束。任何尺寸都可以处理。