使用ASP.NET webAPI上载文件(最大文件大小为10Mb)

时间:2013-06-26 15:35:35

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

我在包含Web API控制器的VS2012 MVC4项目上工作。该项目将在IIS服务器上发布。

我需要允许用户上传文件。问题是Web API限制最大文件大小上传4MB。我读过(例如这里:http://blogs.msdn.com/b/henrikn/archive/2012/03/01/file-upload-and-asp-net-web-api.aspx)我们可以通过自托管Web API来扩展此限制(在这种情况下,文件上传最多2GB)。我不希望自己托管我的webAPI,因为我想在我的IIS网络服务器上托管它,所以我认为这不适合我的情况,对吧?那么如何上传大于4MB的文件呢?

如果可能的话,我会搜索HTML5解决方案(拖放)。

到目前为止,我找到的所有解决方案都无法实现这一目标。

感谢您的帮助。

3 个答案:

答案 0 :(得分:27)

可能不太清楚,但实际上博客网址指的是IIS。您需要在Web.config中查找以下2个设置以增加上载大小:

注意maxRequestLength以千字节为单位:

<system.web>
  <httpRuntime targetFramework="4.5" maxQueryStringLength="" maxRequestLength="" maxUrlLength="" />

注意maxAllowedContentLength以字节为单位:

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

答案 1 :(得分:1)

如果您仔细阅读,它会说“ASP.NET可以上传文件大小的最大限制为2G。”因此,基本上在ASP.NET / IIS中托管时,您将能够接收高达2Gbs的文件。您需要做的是更改web.config中的一些默认值。

检查出来:https://stackoverflow.com/a/7154363/2517785

答案 2 :(得分:-2)

您可以查看

 int MaxContentLength = 1024 * 1024 * 10; //Size = 10 MB
if (postedFile.ContentLength > MaxContentLength)
{


}