C# 通过ASP.NET应用程序上载大文件(高达100gb)

C# 通过ASP.NET应用程序上载大文件(高达100gb),c#,asp.net,asp.net-mvc,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Asp.net Web Api,我需要以某种方式实现通过ASP.NET应用程序上传文件的功能,该应用程序在我们的公司网络中工作。问题是这些文件越来越大。目前我们使用的是一种非常通用的异步上传,但问题是文件越来越大,通过maxAllowedContentLength设置的每个文件的最大限制为3.9gb,因为uint的最大值不允许更多。很快,用户应该上传的文件将超过这个值,并且可能达到100gb大小 我试着在网上寻找一些解决这个问题的方法,但在大多数大文件的文章中,人们的意思是最多1gb < >有没有办法通过ASP.NET MVC

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

我试着在网上寻找一些解决这个问题的方法,但在大多数大文件的文章中,人们的意思是最多1gb


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

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

我在websocket上对上传的文件进行了类似的流式处理,但这可以通过多个ajax请求轻松完成。在这两种情况下,您都希望使用读取客户端计算机上的文件段,将该段编码为可以发送的内容(可能是Base64),然后将该特定段发送到web服务器。您还可以发送其他数据,如文件位置,以确保服务器正确写入文件。服务器可以选择如何响应(可以像“true”一样简单地确认接收),然后客户端javascript将读取并发送文件的下一个块


我有一个在()上使用WebSockets的演示,但是通过一些调整,您可以轻松地将其转换为连续的AJAX请求。

是的,您需要将文件拆分为较小的部分,请参见此处的示例:

@Kamo这实际上是计划B。问题是,我们的用户在上传文件之前必须填写特定表格,并且教他们如何使用FTP会花费太多时间,因此我们必须为此编写自定义FTP客户端。但在此之前,我想探讨修改现有解决方案的所有可能性。@user3223738您可以通过FTP以编程方式发送文件吗?@user3223738填写表单后,您能要求用户将其文件复制到共享文件夹吗?表单归档后可以显示共享文件夹的路径。@Amitd也讨论了这一点,因为我们在同一个VLAN中,但用户分布在全国各地(快餐连锁店)因为共享文件夹存在一些问题,所以我们的网络管理员没有批准这个想法。我想我会考虑的另一个选择是减小该文件的大小。