所以基本上我需要上传大文件,最好是8GB。
我受这些文件上传限制的限制:
<system.web>
<!-- set to max value, max request size is 2GB, takes precedence over IIS -->
<httpRuntime maxRequestLength="2097151" executionTimeout="3600"/>
...
<system.webServer>
<security>
<requestFiltering>
<!-- set to max value, IIS max length of content is 4GB -->
<requestLimits maxAllowedContentLength="4294967295"/>
</requestFiltering>
</security>
...
我看了一下,我听说超过2GB限制的唯一方法是分段上传文件,但我实际上没有找到任何可以做到这一点的工具。有谁知道吗?
答案 0 :(得分:4)
WinRar,7Zip或WinZip应该能够创建分解成碎片的压缩文件。如果随后上载了这些文件,您可以通过解压缩整个存档将它们重新组合在一起。您可以尝试使用7-Zip SDK压缩/拆分这些大文件。使用压缩还可以减少上传时间和发送的字节数。
正如评论所示,可能还有其他类似的工具。
编辑:只是为了说清楚 - 使用这些压缩工具中的任何一个都不会让您一次性上传大量文件。它们可用于轻松压缩和分割大型文件为几个更小,更易于管理的部分,然后可以使用文件上载控件(或类似的第三方控件)的现有限制进行上载。使用这些工具将涉及为您的用户提供实用程序,这有助于拆分文件,之后他们可以上传文件。
这是article,其中包含您可能会查看的各种商业上传工具的链接,但我不熟悉它们。它还链接到Jeff Atwood的博客文章,该文章使用桌面工具进行大量上传。
答案 1 :(得分:0)
通过使用HTML5 FileApi实现分块上传,可以绕过.NET Framework的这种限制。这也将实现上传安全性,如果上传失败,代码只需重新上传一大块X mb(无论多大)。
您必须在服务器端和客户端都实施此技术。
这是一篇关于客户端使用Javascript与HTLM5 FileAPI,XHR v2和WebWorkers实现的博客。
http://kongaraju.blogspot.in/2012/07/large-file-upload-more-than-1gb-using.html
这是一个关于ASP.NET的FileUploadControl的代码项目,它理解分块上传(绕过2 GB的限制)和可恢复的上传。它使用HTML5 API,因此需要现代浏览器。 Firefox 4和当前版本的Chrome(所以我们现在的版本是22?Crazy。)应该可以使用。我现在不知道Opera,但是版本12了解Drag&amp;掉线和网络工作者......所以是的,它可以解决问题。
如果未给出功能,文件上传控件将恢复为整个文件的正常POST(2 gb限制)。