asp.net(c#)如何上传大文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net(c#)如何上传大文件?相关的知识,希望对你有一定的参考价值。

(1)想要想上传大文件,必须在web.config文件中进行配置。

(2)在节点中添加如下代码即可:<httpRuntime maxRequestLength="2097151"/>。

(3)这个代码就是表示设置最大请求值,上传文件也就相当于请求。“maxRequestLength”单位为KB,最大值为2097151,如果不设置,默认为4096 KB (4 MB)。也就是说上传的文件最大可以上传2G以内的文件。

(4)一般没有配置的话,默认只能上传4M以内的文件。配置了的话就可以上传更大的文件。

ASP是动态服务器页面(Active Server Page)的英文缩写。 是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是 .asp。现在常用于各种动态网站中。

参考技术A 想要想上传大文件,必须在web.config文件中进行配置。
在<system.web>节点中添加如下代码即可:
<httpRuntime maxRequestLength="2097151"/>
这个代码就是表示设置最大请求值,上传文件也就相当于请求。maxRequestLength单位为KB,最大值为:2097151.如果不设置,默认为4096 KB (4 MB)。
也就是说上传的文件最大可以上传2G以内的文件。
一般没有配置的话,默认只能上传4M以内的文件。配置了的话就可以上传更大的文件。

如何在 ASP.NET C# 中上传 10GB+ 大小的文件

【中文标题】如何在 ASP.NET C# 中上传 10GB+ 大小的文件【英文标题】:How to upload file with the 10GB+ size in ASP.NET C# 【发布时间】:2016-07-07 16:30:48 【问题描述】:

我正在尝试上传大小超过 10GB+ 的文件,并且我想在服务器上上传多个文件。

我在Web.config 中进行了一些更改以上传大文件。

 <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime executionTimeout="6000000" maxRequestLength="2147483647"/>
  </system.web>

  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="2147483647" />
      </requestFiltering>
    </security>
  </system.webServer>

但它只支持最大 2GB 的文件大小。我做了太多的研究,但我找不到任何可以帮助我上传 10GB+ 文件大小的东西。

我看了一些文章说最大文件大小限制是2GB

Maximum value of maxRequestLength?

IIS 7 httpruntime maxRequestLength limit of 2097151

https://blogs.msdn.microsoft.com/prashant_upadhyay/2011/07/12/large-file-upload-issue-in-asp-net/

我发现了一些技巧,我在客户端(浏览器)对文件进行切片并将所有切片上传到服务器,然后将所有切片合并到单个文件中。

但是这样做可能是错误的想法,如果某些文件未能上传或丢失,则文件可能已损坏。

我不想实现Slice and Upload and Merge 文件技术来上传大文件。

还有其他方法可以使用 ASP.NET 和 C# 上传更大的文件(10GB+ 大小)。

谢谢。

【问题讨论】:

FTP 是个好主意,但我必须在网站上向客户端提供接口来上传文件,而且该文件不是简单文件。我必须提取文件的内容并根据文件的内容执行额外的任务。谢谢@Pikoh 【参考方案1】:

只用这个

<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime executionTimeout="6000000" maxRequestLength="10485760"/>
</system.web>

从 web.config 中删除以下代码

<security>
  <requestFiltering>
    <requestLimits maxAllowedContentLength="2147483647" />
  </requestFiltering>
</security>

10gb = 10485760 kb

【讨论】:

这行不通,因为maxRequestLength只有字节,它的类型是int32,所以它不能上传10GB的文件。如果我按照你说的设置它只上传10MB文件 我永远不会删除你说的块代码。因为我正在使用Server:Microsoft-IIS/8.0 并且在Server:Microsoft-IIS/7.0+ 之后需要块代码..

以上是关于asp.net(c#)如何上传大文件?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NE网站发布注意事项

如何在 ASP.NET C# 中上传 10GB+ 大小的文件

转asp.net(c#)使用HttpWebRequest附加携带请求参数以post方式模拟上传大文件(以图片为例)到Web服务器端

win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NE

如何在 Web 应用程序(ASP.Net、C#、IIS)中进行文件上传

如何使用 C# asp.net 在 GridView 中添加文件上传日期和/或时间?