ASP.NET MVC 中的文件大小上传限制:web.config(s) 中的 maxRequestLength 设置超过 1 个

Posted

技术标签:

【中文标题】ASP.NET MVC 中的文件大小上传限制:web.config(s) 中的 maxRequestLength 设置超过 1 个【英文标题】:file size upload limitation in ASP.NET MVC: more than 1 maxRequestLength setting in web.config(s) 【发布时间】:2009-06-24 14:30:07 【问题描述】:

我想为 maxRequestLength 设置 1 个以上的设置 - 文件大小上传限制(例如,一个用于文件/新建,另一个用于图片/新建)。我的所有操作都采用额外的参数(例如 /File/New?folderId=234)。

单一设置按预期工作:

<httpRuntime executionTimeout="60" maxRequestLength="1024" />

我尝试在根 web.config 中有 2 个位置部分的 2 个设置,但没有任何成功。我不确定在“路径”中写什么 - 视图的物理 aspx 页面,或控制器 + 动作......但是,似乎没有任何效果。

<location path="/File/">
    <system.web>
        <httpRuntime executionTimeout="60" maxRequestLength="4096" />
    </system.web>
</location>
<location path="/Picture/">
    <system.web>
        <httpRuntime executionTimeout="60" maxRequestLength="1024" />
    </system.web>
</location>

我尝试将另一个 web.config 放在特定的视图文件夹中(例如 /Views/Picture/...),就像它在经典的 Webform ASP.NET 中一样,但这似乎也不起作用。 ..

<location path="">
    <system.web>
        <httpRuntime executionTimeout="60" maxRequestLength="1024" />
    </system.web>
</location>

无论我做什么,只有一个 httpRuntime.maxRequestLength 值被应用 - 在(根)web.config...system.web 中。

【问题讨论】:

在这里查看我的答案:ASP.NET MVC and httpRuntime executionTimeout 【参考方案1】:

我认为 Path 属性不应以“/”开头或结尾 - 所以您应该:

<location path="File">
  <system.web>
    <httpRuntime executionTimeout="60" maxRequestLength="4096" />
  </system.web>
</location>
<location path="Picture">
  <system.web>
    <httpRuntime executionTimeout="60" maxRequestLength="1024" />
  </system.web>
</location>

您的虚拟或物理目录级 Web.config 不应包含 元素。

这应该可以解决您的问题。

Location element 的文档甚至有这个例子:

以下代码示例演示了如何将上传的文件大小限制设置为仅指定页面的 128 KB。

<configuration>
  <location path="UploadPage.aspx">
    <system.web>
      <httpRuntime maxRequestLength="128"/>
    </system.web>
  </location>
</configuration>

【讨论】:

你是对的,当然。我尝试了所有可能的变化(“图片”、“/图片”、“图片/”、“/图片/”、“视图/图片”等),但是在发布我的问题时,我选择了“/图片/”,这是显然错了。但是,由于某些其他原因,它不起作用。我重构了代码(更改了提供参数的方式——现在作为查询字符串参数),它开始正常工作,但我不太确定问题出在哪里。 :-( 还是谢谢!:-)

以上是关于ASP.NET MVC 中的文件大小上传限制:web.config(s) 中的 maxRequestLength 设置超过 1 个的主要内容,如果未能解决你的问题,请参考以下文章

如果asp.net mvc3中的大小超过4mb,则无法上传文件[重复]

如何在 asp.net 中使用 AJAX 文件上传来限制文件大小?

在 ASP.NET MVC 中通过 JQuery AJAX 上传文件

使用 Asp.Net MVC 和 IIS 上传大于 3GB 的文件

asp/php/asp.net 上传附件大小修改怎么操作?

asp.net mvc中如何读取上传的doc文件中的数据(含有中文字符)