4

所以基本上我需要上传大文件,最好是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 限制的唯一方法是分段上传文件,但实际上我还没有找到任何可以做到这一点的工具。有人知道吗?

4

2 回答 2

3

WinRar、7Zip 或 WinZip 应该能够创建分解成碎片的压缩文件。如果这些文件随后被上传,您可以通过解压缩整个存档将它们重新组合在一起。您可以尝试使用7-Zip SDK来压缩/拆分这些大文件。使用压缩还可以减少上传时间和发送的字节数。

正如评论所暗示的那样,可能还有其他类似的工具。

编辑:为了清楚起见 - 使用这些压缩工具中的任何一个显然不会让您能够一次性上传大量文件。它们可用于轻松地将大文件压缩和拆分成几个更小、更易于管理的部分,然后可以使用文件上传控件(或类似的第 3 方控件)的现有限制进行上传。使用这些工具将涉及为您的用户提供一个实用程序,该实用程序有助于拆分文件,然后他们可以上传片段。

这是一篇文章,其中包含各种商业上传工具的链接,您可以查看这些工具,但我不熟悉它们。它还链接到 Jeff Atwood 的博客条目,该条目提供了使用桌面工具进行非常大的上传的案例。

于 2012-10-30T16:36:22.540 回答
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(所以我们现在是 Ver 22?太疯狂了。)应该可以工作。我现在不了解 Opera,但版本 12 了解拖放和 Webworkers ......所以是的,它应该工作。

如果未提供功能,文件上传控制将恢复为整个文件的正常 POST(2 gb 限制)。

于 2012-11-01T17:36:55.573 回答