элегантный обработчик maxrequest

Еще вопрос от меня. Это будет непросто!

У меня проблемы с обработкой простой загрузки. Предварительные требования для тестирования с: - Нет Flash (угон) - Основное использование поля загрузки + форма для публикации - Максимальный размер файла 20 МБ (web.config maxrequestlength) - Я запускаю веб-сайт со сборкой в ​​инструменте разработки IIS в визуальном studio (я думаю) - я использую веб-проект MVC

Вопрос: Можно ли показать пользователю красивое сообщение об ошибке, если размер файла превышает 20 МБ? (Без предварительной загрузки всего файла на сервер)

Эти ссылки помогли мне больше всего:

http://www.telerik.com/community/forums/aspnet/upload/maximum-request-length-exceeded.aspx

ASP.NET MVC: обработка загрузки, превышающей maxRequestLength

http://forums.whirlpool.net.au/archive/809909

http://forums.asp.net/t/1106579.aspx/1

Выявление превышения максимальной длины запроса

Но все же я не смог исправить проблему. Atm я использую код принятого ответа последней ссылки (Catching Максимальная длина запроса превышена), но мой код падает, когда я запускаю строку кода ниже:

this.Server.Transfer("~/error/UploadTooLarge.aspx");

Сообщение об ошибке: Ошибка выполнения дочернего запроса для ~/error/UploadTooLarge.aspx.

Я думаю, что получаю это сообщение, потому что использую встроенный веб-сервер VS.NET (см.: http://forums.asp.net/t/1106579.aspx/1 последний пост этой страницы).

Боюсь, я сделал весь вопрос немного трудным для чтения. Вкратце: как я могу показать аккуратное сообщение об ошибке, когда загруженный файл слишком велик (используя встроенный веб-сервер S.NET)?


person PcPulsar    schedule 26.09.2012    source источник


Ответы (1)


Если вы не хотите сначала отправлять весь файл на сервер, единственным вариантом будет javascript. Объект FileReader решит эту проблему за вас https://developer.mozilla.org/en-US/docs/DOM/FileReader Проблема в том, что он не будет работать в старых браузерах. Теперь, если старые браузеры не являются для вас проблемой, вы должны найти множество учебных пособий, показывающих, как использовать объект FileReader. С его помощью вы можете выполнять асинхронную загрузку, поэтому вы даже добавляете хороший индикатор выполнения, учитывая, что файл довольно большой.

person coffeeyesplease    schedule 27.09.2012