Когда InputStream доступен при загрузке большого файла?
-
19-08-2019 - |
Вопрос
Когда будет доступен файл PostedFile.InputStream при загрузке большого файла?
Я хотел бы передать поток другому процессу, и я надеюсь, что если загружается большой файл, я могу передать поток прямо в этот новый процесс без записи в файловую систему. Поскольку процесс и / или загрузка могут занять некоторое время, мне интересно, могу ли я сразу начать читать InputStream или мне нужно ждать, пока весь файл будет передан на сервер, прежде чем он сможет быть обработан.
Я предполагаю, что более общий вопрос - каков жизненный цикл запроса POST, когда происходит загрузка файла?
Решение
PostedFile.InputStream
недоступен, пока не будет загружен весь файл. IIS6 кэширует файл в памяти, в то время как IIS7 теперь кэширует файл на диск перед передачей входного потока вашему методу.
Вы можете получить модуль HttpModule, например NeatUpload , который позволяет вам получать доступ к битам, пока они загрузка.