通过ASP.NET应用程序

时间:2015-05-08 08:27:21

标签: c# asp.net asp.net-mvc asp.net-web-api

我需要以某种方式实现通过在我们公司网络中工作的ASP.NET应用程序上传文件的能力。问题是那些文件越来越大。目前我们正在使用非常通用的异步上传,但问题是文件越来越大,每个文件的最大限制为3.9 GB,因为maxAllowedContentLength的最大值赢了uint允许更多。用户假设上传的文件很快就会超过这个值,最大可能达到100GB。

我尝试在线寻找这个问题的解决方案但是在大多数文章中,大多数文件的人最多意味着1GB。

那么有没有办法通过ASP.NET MVC \ WebAPI应用程序上传真正大的文件(最多100g),或者我需要寻找替代解决方案?

2 个答案:

答案 0 :(得分:7)

是的,您需要将文件拆分为较小的部分,请参阅此处的示例:http://forums.asp.net/t/1742612.aspx?How+to+upload+a+big+file+in+Mvc+

答案 1 :(得分:3)

您可以考虑以块的形式发送它。这将跳过大文件要求(因为每个请求只会是您发送的块的大小),但在客户端和服务器端稍微复杂一些。

我已经通过websocket流式传输上传文件做了类似的事情,但这可以通过多个ajax请求轻松完成。在任何一种情况下,您都希望使用JavaScript File API来读取客户端计算机上的文件片段,将该片段编码为您可以发送的内容(可能是Base64),并发送该特定内容分段到Web服务器。您还可以发送其他数据,如文件位置,以确保服务器正确写入文件。服务器可以选择如何响应(可以像" true"确认收据一样简单),之后客户端javascript将读取并发送文件的下一个块。

我在github repo hereASP.NET MVC server-side code here)上使用WebSockets对此进行了演示,但通过一些调整,您可以轻松地将其转换为顺序AJAX请求。