2013-06-26 8 views
8

Pracuję nad projektem VS2012 MVC4 zawierającym kontroler Web API. Ten projekt zostanie opublikowany na serwerze IIS.Przesyłanie plików (rozmiar pliku do 10 MB) za pomocą ASP.NET webAPI

Muszę zezwolić użytkownikom na przesyłanie plików. Problem polega na tym, że interfejs API sieci jest ograniczony do 4 MB maksymalnego rozmiaru pliku. Przeczytałem (na przykład tutaj: http://blogs.msdn.com/b/henrikn/archive/2012/03/01/file-upload-and-asp-net-web-api.aspx), że możemy rozszerzyć to ograniczenie przez samo hostowanie interfejsu API strony internetowej (w tym przypadku przesyłanie pliku do 2 GB). Nie chcę hostować mojego webAPI, ponieważ chcę go hostować na serwerze internetowym IIS, więc myślę, że to nie jest odpowiednie dla mojej sytuacji, prawda? Co mogę zrobić, aby przesłać pliki większe niż 4 MB?

Jeśli to możliwe, szukam rozwiązania HTML5 (z metodą "przeciągnij i upuść").

Do tej pory żadne z rozwiązań, które znalazłem, nie pozwala mi tego dokonać.

Dzięki za pomoc.

Odpowiedz

20

Prawdopodobnie nie było jasne, ale faktycznie url blog odnosi się do IIS. Trzeba spojrzeć na 2 następujące ustawienia w pliku web.config, aby zwiększyć rozmiar Dodano:

UWAGA (maxRequestLength = "rozmiar w kilobajtach"):
<system.web> <httpRuntime targetFramework="4.5" maxQueryStringLength="" maxRequestLength="" maxUrlLength="" />

UWAGA (maxAllowedContentLength jest w bajtach) <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="" maxQueryString="" maxUrl=""/>

+0

Dziękuję bardzo za te informacje. – Bronzato

+1

Zobacz także ten link dotyczący obsługi bardzo dużych plików: http://www.strathweb.com/2012/09/dealing-with-large-files-in-asp-net-web-api/ – Svakinn

1

Jeśli przeczytasz go uważnie, to znaczy, że "ASP.NET ma maksymalny limit 2G pod względem rozmiaru pliku, który możesz przesłać." Zasadniczo, gdy hostowany jest w ASP.NET/IIS, będziesz mógł odbierać pliki do 2 Gb. Musisz zmienić niektóre domyślne wartości w web.config.

to sprawdzić: https://stackoverflow.com/a/7154363/2517785

0

można to sprawdzić

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


} 
Powiązane problemy