Я пытаюсь загрузить файл или поток данных на наш веб-сервер и не могу найти достойный способ сделать это. Я пробовал оба WebClient
и WebRequest
оба имеют свои проблемы.
WebClient
Это легко и просто, но вы не получаете никакого уведомления о том, что асинхронная загрузка завершена, и событие UploadProgressChanged
не вызывается с чем-либо полезным. Альтернативой является преобразование ваших двоичных данных в строку и использование UploadStringASync
, потому что тогда, по крайней мере, вы получите UploadStringCompleted
, проблема в том, что вам нужно много оперативной памяти для больших файлов, поскольку она кодирует все данные и загружает их за один раз. .
HttpWebRequest
Немного сложнее, но все еще делает то, что нужно, проблема, которую я получаю, заключается в том, что, хотя он вызывается в фоновом потоке (предположительно), он все еще, кажется, блокирует мой пользовательский интерфейс и весь браузер, пока загрузка не завершится, что не кажется правый.
Обычный .net имеет некоторые подходящие WebClient
методы для OnUploadDataCompleted и прогресса, но они не доступны в Silverlight .net ... большое упущение, я думаю!
Есть ли у кого-нибудь решения, мне нужно загружать несколько двоичных файлов, желательно с прогрессом, но мне нужно выполнить некоторые действия после завершения загрузки файлов.
С нетерпением ждем помощи в этом.