2012-09-17 232 views
2

我有一个Web服务,接受真正的大文件。通常在10 - 15 GB(不是MB)的范围内。 但是,只能在Linux上使用Chrome上传使用浏览器。所有3种主流浏览器都有不同的缺陷试图上传这样的文件:巨大的文件上传

  • Internet Explorer在正好4GB后停止。
  • Firefox根本无法启动。
  • Chrome(在Windows上)传输整个文件,但未能发送关闭绑定(请发送0xff代替)。

现在我们正在寻找一种上传方式来工作。最好只使用HTML/JS,但我认为没有办法做到这一点。第二次尝试将是闪存,但FileReference似乎打破文件> 4GB。最后一种方法是Java,但这不是我们在浏览器客户端中寻找的。

请注意,这是关于客户端。我知道服务器端代码的工作原理,因为我可以在Linux上使用标准HTML上传和Chrome上传12GB文件。它是迄今为止唯一的浏览器/操作系统组合,但是我相信,服务器代码很好。

有谁知道任何方式来获得巨大的文件上传工作?

问候, 斯特芬

+0

这可能有助于:“使用html5上传大块文件”http://stackoverflow.com/questions/7853467/uploading-a-file-in-chunks-using-html5 – ansiart

+1

一次上传4gb并不好,临时块会保存到RAM内存中,所以想象一下,如果10位用户同时上传4GB文件大小。强烈建议使用块! –

+0

我不确定,你的意思是大块。我知道大块编码,这是失控的JavaScript代码。我也读过了第一条评论中链接的答案 - 但那只会在Chrome中起作用......是否有第三个解释大块? –

回答

1

有一个相当年轻的JS/HTML5 API,它可能包括你的用户案例:

https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications

我不能给其适用性,虽然发言。

+0

现在使用html5的File API解决了这个问题。但是,这将IE排除在版本9之外(甚至包括)。如果有什么方法可以让IE9上传这些上传文件,我很乐意听到。 –

-1

如果您使用IIS,默认最大上传文件为4GB。您需要在脚本或服务器设置中更改此设置。

请参见:Increasing Max Upload File Size on IIS7/Win7 Pro

+0

默认iis不是4GB,但允许的最大值是4GB。 –

+0

这不是关于服务器端 - 它工作正常,因为我可以在linux下从chrome上传12GB文件。这是关于浏览器端的... –

-1

通常你会打破和使用流上传中块上传这些文件。如果您获取文件的数量有限,请将该部分上传到服务器,服务器会将数据附加到文件中。重复直到完成文件上传。您可以使用FileStream更新:仅限Adobe AIR)或使用实验Blob/FileReader的JavaScript读取部分文件。我想这可能是解决问题的方法。

我觉得这个解决方案可以帮助: AS3 fileStream appears to read the file into memory

让我知道,如果这个工程了,它的一个有趣的问题。

+1

不幸的是,FileStream仅限于AIR。 – ansiart

+0

ansiart ist right。我无法使用FileStream。 –