Загрузка файла / Соединение было сброшено

Я пишу обработчик загрузки (asp.net) для обработки загрузки изображений.

Цель состоит в том, чтобы проверить тип изображения и размер содержимого перед загрузкой всего файла. Поэтому я не могу использовать объект Request напрямую, поскольку при этом загружается весь входной поток файла. Поэтому я использую HttpWorkerRequest.

Тем не менее, я продолжаю получать «Соединение с сервером было сброшено во время загрузки страницы».

После недолгих исследований стало очевидно, что при отправке файла вызов работает, только если прочитан весь входной поток.

Это, конечно, именно то, чего я не хочу делать :)

Может кто-нибудь, пожалуйста, скажите мне, как я могу закрыть запрос, не вызывая проблемы «сброса соединения» и не обрабатывая ответ браузером?


person Eben Roux    schedule 14.10.2010    source источник


Ответы (1)


Это невозможно сделать, поскольку именно так работает HTTP. Лучшее, что вы можете сделать, это получить данные от клиента (т.е. прочитать их по частям) и сразу же забыть о них. Это должно помешать вашим требованиям к памяти, хотя и повредит пропускной способности.

person Mike Axiak    schedule 14.10.2010
comment
Спасибо, Майк. Поскольку моя загрузка выполняется с использованием ajax (форма jquery), я все равно могу вызвать сбой вызова, так что весь файл не загружается. У меня есть еще один бит, опрашивающий статус, поэтому я обработаю сбой там. - person Eben Roux; 17.10.2010