我可以通过网络服务上传文件吗?

时间:2010-12-26 16:20:13

标签: web-services webservice-client

我希望我的客户将一些文件上传到我的服务器。我目前的设计如下:

但我不知道下一步该做什么?我相信客户有权写入Web服务返回的虚拟路径,但是我如何编写客户端代码以便它可以实际复制到该虚拟路径?我的客户端是Win32应用程序,而不是网页。

如果我希望客户在网页中上传文件怎么办?我知道HTTP协议中有一个“PUT”方法,可用于将内容上传到服务器,但如何使用它?

我是这种网络开发的新手。我希望我清楚自己。如果有更好的设计,请告诉我。

非常感谢。

更新 - 1 - 0:59 2010/12/27

类似的问题:How to upload a file to a WCF Service?

一些可能的解决方案:

Image Upload Web Service in C#.NET

Upload any type of File through a C# Web Service

Progress Indication while Uploading/Downloading Files using WCF

2 个答案:

答案 0 :(得分:3)

我会避免允许任何人将文件写入目录。我知道你已经设置了权限来防止发生任何不良事件,但它仍然设置在任何人可以读/写的位置,而不仅仅是你告诉URL的人。通过默默无闻的安全不是最佳做法。

您使用的是哪种网络服务? WCF,SOAP,其他什么都在一起?我希望文件上传仍然是一个服务调用(不只是一些PUT命令到目录)。这样,如果需要,您仍然可以应用安全性。直到它为止,文件只不过是一个字节数组,因此您可以让您的Web服务接受一个字节数组并将其写入正确的位置。如果我对你正在使用的技术有更好的了解(php,asp.net,jsp等)那么我可能会提出更精确的建议。

HTH

答案 1 :(得分:1)

您可以使用SOAP attachments,或者如果不使用SOAP,则使用类似的东西 - 指定文件名,内容类型和二进制数据,Base64编码。