我正在尝试将文件或数据流上传到我们的网络服务器,但我找不到合适的方法。我都试过了WebClient
,WebRequest
两者都有问题。
WebClient
很好很简单,但是您没有收到任何异步上传已完成的通知,并且UploadProgressChanged
事件不会被任何有用的回调。另一种方法是将二进制数据转换为字符串并使用UploadStringASync
,因为至少你会得到一个UploadStringCompleted
,问题是你需要大量的内存来存储大文件,因为它对所有数据进行编码并一次性上传。
HttpWebRequest
有点复杂,但仍然需要做,我得到的问题是,即使它是在后台线程上调用的(据说),它似乎仍然阻塞我的 UI 和整个浏览器,直到上传完成,这似乎没有完全正确。
普通 .net 确实有一些适当WebClient
的方法用于OnUploadDataCompleted和进度,但这些在 Silverlight .net 中不可用……我认为这是一个很大的遗漏!
有没有人有任何解决方案,我需要上传多个二进制文件,最好有进度,但我需要在文件完成上传后执行一些操作。
期待一些帮助。