我在包含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解决方案(拖放)。
到目前为止,我找到的所有解决方案都无法实现这一目标。
感谢您的帮助。
答案 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中的一些默认值。
答案 2 :(得分:-2)
您可以查看
int MaxContentLength = 1024 * 1024 * 10; //Size = 10 MB
if (postedFile.ContentLength > MaxContentLength)
{
}