Загрузка файла Silverlight: это безопасно? - PullRequest
3 голосов
/ 17 мая 2010

Я видел образец загрузки Silverlight здесь , на который ссылались несколько раз на этом сайте и в других местах, но у меня есть вопрос о том, действительно ли это безопасно.

Быстрый обзор: этот код выполняет загрузку по частям в обработчик ASHX. UploadFileChunk () создает экземпляр WebClient и использует OpenWriteAsync и OpenWriteCompletedEventHandler для отправки некоторых битов из файла. WebClient связывается с обработчиком, используя URI с двумя параметрами QueryString: «filename» и «append». После записи битов в чанке в выходной поток WebClient обработчик событий проверяет, все ли биты отправлены, и если нет, то снова вызывает UploadFileChunk () для отправки другого чанка.

На стороне сервера обработчик прост - записать биты на диск с помощью FileStream, добавив, если append = 1, и создать заново, если append = 0.

Эта архитектура, скорее всего, приведет к проблемам. Гарантируется ли, что сервер завершит запись битов и закроет поток файлов, прежде чем он получит следующий запрос и начнет добавлять биты из следующего фрагмента? Насколько я понимаю, OpenWriteCompletedEventHandler на стороне Silverlight заключается в том, что когда вы завершаете операцию записи и закрываете поток, это не обязательно означает, что биты были отправлены по проводам, не говоря уже о том, что они обрабатывались обработчиком на стороне сервера. 1009 *

Спасибо!

1 Ответ

1 голос
/ 23 августа 2010

Если у вас есть какие-либо вопросы по поводу загрузки файлов большего размера (я видел сообщения о проблемах с очень большими файлами), попробуйте один из бесплатных загрузчиков файлов Silverlight с открытым исходным кодом , например этот

...