通过 Web 服务上传文件
Posted
技术标签:
【中文标题】通过 Web 服务上传文件【英文标题】:File Uploads via Web Services 【发布时间】:2010-09-05 22:08:16 【问题描述】:是否可以通过网络服务将文件从客户端计算机上传到服务器?客户端可以运行任何东西,从原生桌面应用到瘦 ajax 客户端。
【问题讨论】:
【参考方案1】:当然可以通过 Web 服务(例如 SOAP)发送二进制文件,但您通常必须进行某种编码,例如 base64,这会增加要发送的数据量。发送任意二进制文件的最有效方法之一是通过 HTTP PUT 操作,因为没有编码开销。并非所有客户都一定有简单的方法来做到这一点,但值得一看。
硬币的另一面是如何从用户磁盘上获取数据并连接到网络连接。 “瘦 ajax 客户端”可能没有从用户磁盘读取文件的必要权限。另一方面,桌面应用程序实现可以毫无问题地做到这一点。
【讨论】:
【参考方案2】:我不是“webservice”的高手,但是如果你开发webservice(和客户端),你总是可以在客户端将二进制文件转换为BASE64(可以在java中做......我在 ajax 中也一样)并作为“字符串”传输,另一方面,在 web 服务中从 BASE64 编码为二进制...
这是一种想法,可行,但在所有环境中可能并不“正确”。
【讨论】:
以上是关于通过 Web 服务上传文件的主要内容,如果未能解决你的问题,请参考以下文章