Превышен максимальный размер загружаемого файла. - PullRequest
3 голосов
/ 27 октября 2011

Я пытаюсь загрузить документы на свой сервер, используя методику, описанную в этом блоге 1002 *

Все прошло хорошо, и я могу загружать документы просто отлично.Единственное препятствие - когда я пытаюсь загрузить файл, размер которого превышает лимит загрузки, определенный в моем файле web.config следующим образом ...

<location path="Documents/Documents/Add">
   <system.web>
      <httpRuntime maxRequestLength="25600"/>
   </system.web>   
</location>

Проблема в том, что я не получаю ответ отсервер.На самом деле, при отладке в Visual Studio действие даже не выполняется!

Дальнейшее расследование в Fiddler показывает, что я получаю ...

504: ReadResponse() failed: The server did not return a response for this request.  

.... ноЯ получаю это только в Chrome, когда fiddler работает.Если fiddler не запущен, chrome просто видит «Failed» без кода состояния, и ошибка () вызова формы $ (). Ajax не срабатывает.

Также этот пост имеет точно такую ​​же проблему.Тем не менее, я хочу знать, как я могу дать отзыв пользователю, когда размер файла превышен, поскольку в настоящее время «loading.gif» просто вращается, так как ответ об ошибке не возникает.

1 Ответ

3 голосов
/ 27 октября 2011

Проверьте этот вопрос о проверке размера файла на стороне клиента, чтобы можно было его перехватить, прежде чем пытаться загрузить слишком большой файл. Найти размер файла за ссылкой для скачивания с jQuery

EDIT

Сервер сгенерирует исключение, если размер файла больше, чем ваш параметр в файле web.config, так что вы можете сделать пару вещей, если хотите обработать его на стороне сервера.

1) Вы можете увеличить максимальный размер файла, а затем код загрузки может подтвердить меньший размер и вернуть ошибку, если она слишком велика. Конечно, если они попробуют что-то большее, чем ваш новый размер, это все равно не получится.

2) Перехватите ошибку в файле global.asax и сделайте что-нибудь с ним. Установить заголовок ответа, вернуть false или что-то еще. Отметьте Перехват "Максимальная длина запроса превышена" , чтобы начать работу с этой опцией.

3) Обработайте его на стороне клиента с помощью опции JQuery, которую я установил ранее, или используйте Flash для проверки размера.

Обычно ждать, пока сервер скажет вам, что файл слишком большой, обычно слишком поздно. Файл должен пройти весь путь до того, как он скажет вам, что слишком большой. Это вызывает больший удар на вашем сервере. Обычно лучше найти способ проверить это на клиенте, если это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...