2013-06-26 150 views
8

我使用包含Web API控制器的VS2012 MVC4項目。該項目將在IIS服務器上發佈。使用ASP.NET webAPI上傳文件(最大10Mb文件大小)

我需要允許用戶上傳文件。問題是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 Web服務器上,所以我認爲這不適合我的情況,對吧?那麼我能做些什麼來上傳大於4MB的文件呢?

如果可能,我搜索HTML5解決方案(拖放)。

到目前爲止,我找到的解決方案都沒有讓我做到這一點。

感謝您的幫助。

回答

20

也許並不清楚,但實際上的博客網址指的是IIS。你需要尋找Web.config中的以下2個設置,以提高上傳大小:

NOTE(的maxRequestLength = 「大小千字節」)
<system.web> <httpRuntime targetFramework="4.5" maxQueryStringLength="" maxRequestLength="" maxUrlLength="" />

NOTE(maxAllowedContentLength是以字節爲單位) <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="" maxQueryString="" maxUrl=""/>

+0

非常感謝您提供此信息。 – Bronzato

+1

另請參閱處理超大型上傳的鏈接: http://www.strathweb.com/2012/09/dealing-with-large-files-in-asp-net-web-api/ – Svakinn

1

如果您仔細閱讀,它說「根據您可以上傳的文件大小,ASP.NET的最大限制爲2G」。所以基本上,當在ASP.NET/IIS中託管時,您將能夠接收高達2Gbs的文件。你必須做的是改變web.config中的一些默認值。

檢查了這一點:https://stackoverflow.com/a/7154363/2517785

0

您可以檢查此

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


}