Я не уверен, происходит ли это в других браузерах, потому что в других браузерах мы можем проверять размер файла на стороне клиента после того, как файл выбран. Мы не разрешаем загрузку более 2 МБ, поэтому мы заблокируем пользователя со стороны пользовательского интерфейса, если он выберет файл слишком большого размера.
Но IE 7/8 явно не позволяет нам это делать. Поэтому мы хотели бы обнаружить эту сторону сервера и отправить обратно соответствующее сообщение. Однако возникают исключения, когда мы видим, что части запроса отсутствуют.
Я вижу свойства в моем запросе Fiddler, поэтому я знаю, что они отправляются:
-----------------------------7db16b332033c
Content-Disposition: form-data; name="folderId"
CA15R1bH08ZxJ`DPL0mstwGjHMlrjKobu9VHBoPASniX8`UXgM8dnazjICvwfUj2qUKk14rh|NlB|uaUNkiVjPAqkX`kxWRl
-----------------------------7db16b332033c
Content-Disposition: form-data; name="docGuid"
-----------------------------7db16b332033c
Content-Disposition: form-data; name="fromSharedTree"
false
Однако свойства недоступны, когда я выполняю следующий код, поэтому создаются исключения.
string categoryId = request["folderId"];
string docGuid = request["docGuid"];
bool isUpdate = !string.IsNullOrWhiteSpace(docGuid);
bool isShared = bool.Parse(request["fromSharedTree"]);
Куда делись значения? Как мне их вернуть!?
Редактировать
Любая попытка доступа к Request.InputStream
приводит к исключению в этом сценарии. Казалось бы, это связано. Кто здесь устанавливает ограничение по размеру? Это .NET? IIS?