【发布时间】:2012-09-17 16:40:46
【问题描述】:
我有一个接受非常大的文件的网络服务。通常在 10 - 15 GB(不是 MB)的范围内。 然而,使用浏览器上传只能在 Linux 上使用 Chrome。尝试上传此类文件时,所有 3 种主要浏览器都有不同的缺陷:
- Internet Explorer 在正好 4GB 后停止。
- Firefox 根本无法启动。
- Chrome(在 Windows 上)传输整个文件,但无法发送关闭绑定(改为发送 0xff)。
现在我们正在寻找一种让上传工作正常进行的方法。最好只使用 HTML/JS,但我认为没有办法做到这一点。第二次尝试是闪存,但 FileReference 似乎会因文件 > 4GB 而中断。最后一种方法是 Java,但这不是我们在浏览器客户端中寻找的。p>
请注意,这是关于客户端的。我知道服务器端代码有效,因为我可以在 Linux 上使用标准 HTML-Upload 和 Chrome 上传 12GB 文件。它是迄今为止唯一有效的浏览器/操作系统组合,但因此我确信,服务器代码很好。
有谁知道让大文件上传工作的任何方法?
问候, 史蒂芬
【问题讨论】:
-
这可能会有所帮助:“使用 html5 分块上传文件”stackoverflow.com/questions/7853467/…
-
一次上传 4gb 是不行的,临时块被保存到内存中,所以想象一下如果 10 个用户同时上传 4gb 文件大小会怎样。强烈建议使用块!
-
我不确定,你所说的块是什么意思。我知道块编码,这是 javascript 代码无法控制的。我还阅读了第一条评论中链接的答案 - 但这只能在 chrome 中使用......是否有第三种解释块?
-
文件上传,按照您的理解,发生在 HTTP 级别。它不会发生在 HTML、Javascript 等中。这些只是为该功能提供接口。所有分块/传输都可以被认为发生在 HTTP 协议级别(显然,您可以使用比这更低的协议,但我猜这只会让您更加困惑)。
标签: actionscript-3 flash html browser upload