正在将文件上载到远程服务器
本文关键字:服务器 上载 文件 | 更新日期: 2023-09-27 18:23:36
我是一个WPF新手,对C#线程编程几乎没有经验。我被分配了一个带有多线程的C#WPF应用程序。该应用程序的要求是将本地大文件上传到名为"ABC"的目标文件夹,直接位于根磁盘驱动程序(例如C:''ABC)下Windows平台。我不知道该怎么走。请告知。非常感谢。
以下是有关要求的详细信息:
-
因为每个上传的文件都很大,所以需要一个单独的线程来运行上传文件功能。我计划将线程编程与async/await和Task对象结合使用。知道吗?
-
在WPF中,我不知道哪个WPF控件用于上传功能。请帮忙。
-
对于目标文件夹"ABC",是否需要明确设置其访问权限?
-
我应该使用async/await和Task,还是BackgroundWorker类?
更新:
WPF应用程序而非WCF应用程序。抱歉我的打字错误。
要使用WCF
服务通过HTTP
传输大文件,可以使用以下类型的绑定:
wsHttpBinding
basicHttpBinding
在wsHttpBinding
中,我们可以将TransferMode
属性设置为Buffered
,但对于大文件使用这种方法有一个缺点,因为它需要在上传/下载之前将整个文件放在内存中,web客户端和WCF服务主机都需要大的缓冲区。但是,这种方法对于安全地传输小文件非常有用。
在basicHTTPBinding
中,我们可以使用TransferMode
属性作为Streamed
,这样文件就可以以块的形式传输。
有关更多信息,请参阅本文:WCF流:通过HTTP 上传/下载文件
以及通过TCP/IP
传输文件,请阅读以下文章:
基于WCF TCP的文件服务器
使用TCP 发送文件
使用WCF适配器的大型消息传输第1部分