如何增加ASP.NET中的最大上传文件大小?

我有一个表单,除了在ASP.NET中的file upload。 我需要将最大上传大小增加到4 MB默认值以上。

我在某些地方发现了msdn下面的代码。

[ConfigurationPropertyAttribute("maxRequestLength", DefaultValue = )] 

没有任何参考文献实际上描述了如何使用它,我尝试了几件事情,但没有成功。 我只想修改某些要求file upload的页面的属性。

这是正确的路线吗? 我该如何使用这个?

这个设置在你的web.config文件中。 它影响整个应用程序,但是…我不认为你可以设置每页。

 <configuration> <system.web> <httpRuntime maxRequestLength="xxx" /> </system.web> </configuration> 

“xxx”以KB为单位。 默认值是4096(= 4 MB)。

对于IIS 7+,以及添加httpRuntime maxRequestLength设置,您还需要添加:

  <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="52428800" /> <!--50MB--> </requestFiltering> </security> </system.webServer> 

或在IIS(7)中:

  • select您希望启用的网站接受大file upload。
  • 在主窗口中双击“请求过滤”
  • select“编辑function设置”
  • 修改“允许的最大内容长度(字节)”

要增加上传文件的大小限制,我们有两种方法

1. IIS6或更低

默认情况下,在ASP.Netfile upload到服务器的最大大小约为4MB 。 可以通过修改web.config中maxRequestLength属性来增加此值。

请记住:maxRequestLenght以KB为单位

例如 :如果要限制上传到15MB,请将maxRequestLength设置为“15360”(15 x 1024)。

 <system.web> <!-- maxRequestLength for asp.net, in KB --> <httpRuntime maxRequestLength="15360" ></httpRuntime> </system.web> 

2. IIS7或更高

上传文件的方式略有不同.IIS7引入了请求过滤模块,在ASP.Net之前执行。意味着pipe道工作的方式是首先检查IIS值( maxAllowedContentLength ),然后检查ASP.NET值( maxRequestLength )。 maxAllowedContentLength属性默认为28.61 MB 。通过在同一web.config中修改两个属性,可以增加此值。

记住:maxAllowedContentLength是以字节为单位的

示例 :如果要限制上传到15MB,请将maxRequestLength设置为“15360”,将maxAllowedContentLength设置为“15728640”(15 x 1024 x 1024)。

 <system.web> <!-- maxRequestLength for asp.net, in KB --> <httpRuntime maxRequestLength="15360" ></httpRuntime> </system.web> <system.webServer> <security> <requestFiltering> <!-- maxAllowedContentLength, for IIS, in bytes --> <requestLimits maxAllowedContentLength="15728640" ></requestLimits> </requestFiltering> </security> </system.webServer> 

MSDN参考链接 : https : //msdn.microsoft.com/en-us/library/e1f13641(VS.80).aspx

我相信web.config中的这一行将设置最大上传大小:

 <system.web> <httpRuntime maxRequestLength="600000"/> </system.web> 

如果它的Windows 2003 / IIS 6.0检查出位于文件夹C:\ windows \ system32 \ inetsrv \中的文件metabase.xml中的AspMaxRequestEntityAllowed =“204800”

对于大多数用户来说,“204800”(〜205Kb)的默认值对我来说太低了。 只要改变你认为应该是最大的价值。

如果在编辑后无法保存文件,则必须停止ISS服务器或启用服务器以允许编辑该文件:

替代文字http://blogs.itmaskinen.se/image.axd?picture=WindowsLiveWriter/Request.BinaryReadFailedwindows2003IIS.0_BC5A/image_2.png

编辑:我没有读取正确的问题(如何在webconfig中设置maxrequest)。 但是这个信息可能是其他人的拦截,很多人把他们的网站从win2000-server移到win2003,并且有一个工作上传function,突然得到Request.BinaryRead Failed错误将会使用它。 所以我把答案留在这里。

对于2Gb最大限制,在您的应用程序web.config中:

 <system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" maxRequestLength="2147483647" executionTimeout="1600" requestLengthDiskThreshold="2147483647" /> </system.web> <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="2147483647" /> </requestFiltering> </security> </system.webServer> 

我在2008年的IIS服务器赢得同样的问题,我已经解决了在web.config中添加这个configuration的问题:

 <system.web> <httpRuntime executionTimeout="3600" maxRequestLength="102400" appRequestQueueLimit="100" requestValidationMode="2.0" requestLengthDiskThreshold="10024000"/> </system.web> 

requestLengthDiskThreshold默认是80000字节,所以对我的应用程序来说太小了。 requestLengthDiskThreshold以字节度量,maxRequestLength以千字节表示。

如果应用程序正在使用System.Web.UI.HtmlControls.HtmlInputFile服务器组件,则存在该问题。 增加requestLengthDiskThreshold是解决它的必要条件。

您可以在应用程序的web.config文件中编写该代码块。

 <httpRuntime maxRequestLength="2048576000" /> <sessionState timeout="3600" /> 

通过编写代码,您可以上传比现在更大的文件

我知道这是一个老问题。

所以这是你必须做的:

在你的web.config文件中,添加这个:

  <!-- 3GB Files / in kilobyte (3072*1024) --> <httpRuntime targetFramework="4.5" maxRequestLength="3145728"/> 

这下

 <security> <requestFiltering> <!-- 3GB Files / in byte (3072*1024*1024) --> <requestLimits maxAllowedContentLength="3221225472" /> </requestFiltering> </security> 

你在评论中看到这是如何工作的。 在一个中,你需要以字节为单位,而另一个以千字节为单位。 希望有所帮助。

如果您使用共享点,您应该使用pipe理工具configuration最大大小: kb925083

我有一个关于如何增加asp上传控件的文件大小的博客文章。

从post:

默认情况下,FileUpload控件允许上传最大4MB文件,执行超时时间为110秒。 这些属性可以在web.config文件的httpRuntime部分中进行更改。 maxRequestLength属性确定可以上传的最大文件大小。 executionTimeout属性决定了执行的最大时间。

如果它在你的本地机器上工作,并且在IIS(我使用Windows Server 2008 R2)中部署之后不起作用,我有一个解决scheme。

打开IIS(inetmgr)转到您的网站在右侧转到内容(请求过滤)转到编辑function设置更改最大内容大小为(您需要的字节数)这将工作。 您也可以从以下线程获取帮助http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits

如果您使用的是Framework 4.6

 <httpRuntime targetFramework="4.6.1" requestValidationMode="2.0" maxRequestLength="10485760" />