.NET MVC3 Не могу загрузить большие файлы через FileUpload - PullRequest
3 голосов
/ 13 марта 2012

Мне нужен способ загрузки больших файлов (более 50 МБ) на мой веб-сайт .net mvc3 (размещенный на Amazon).После попытки загрузить большой zip-файл (36,9 МБ) FireFox показывает экран «Соединение было сброшено», а FireBug показывает «Прервано» в статусе.

Есть идеи, как мне это решить?

Контроллер:

private void SaveFile(HttpPostedFileBase uploadedFile)
{
    using (var file = System.IO.File.Create(Server.MapPath("/uploads/" + uploadedFile.FileName))
        uploadedFile.InputStream.CopyTo(file);
}

Web.config:

  <system.web>
    <httpRuntime maxRequestLength="56320" executionTimeout="1500"/>
</system.web>

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

1 Ответ

10 голосов
/ 13 марта 2012

Свойство maxAllowedContentLength в байтах:

<requestLimits maxAllowedContentLength= "10485760"/>

10485760 байт = 10 МБ.Поэтому, если вы попытаетесь загрузить файл размером более 10 МБ, у вас ничего не получится.

Будьте последовательны между вашим maxRequestLength, который находится в КБ:

<system.web>
    <!-- Limit file uploads to 55MB -->
    <httpRuntime maxRequestLength="56320" executionTimeout="1500"/>
</system.web>

, который указывает ограничение в 55 МБ, и вашим requestLimits.Как это:

<system.webServer>
    <security>
        <requestFiltering>
            <!-- Limit file uploads to 55MB -->
            <requestLimits maxAllowedContentLength="57671680"/>
        </requestFiltering>
    </security>
</system.webServer>
...