我希望我的客户将一些文件上传到我的服务器。我目前的设计如下:
我在我的服务器上创建了一个文件夹,其中包含对匿名用户的R / W权限,如下所示:http://myserver/uploads
客户联系我的网络服务以表明他们想要上传内容,并且网络服务返回了如下路径:http://myserver/uploads/xxx-xxx-xxx-xxx,xxx部分是GUID。
但我不知道下一步该做什么?我相信客户有权写入Web服务返回的虚拟路径,但是我如何编写客户端代码以便它可以实际复制到该虚拟路径?我的客户端是Win32应用程序,而不是网页。
如果我希望客户在网页中上传文件怎么办?我知道HTTP协议中有一个“PUT”方法,可用于将内容上传到服务器,但如何使用它?
我是这种网络开发的新手。我希望我清楚自己。如果有更好的设计,请告诉我。
非常感谢。
类似的问题: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
答案 0 :(得分:3)
我会避免允许任何人将文件写入目录。我知道你已经设置了权限来防止发生任何不良事件,但它仍然设置在任何人可以读/写的位置,而不仅仅是你告诉URL的人。通过默默无闻的安全不是最佳做法。
您使用的是哪种网络服务? WCF,SOAP,其他什么都在一起?我希望文件上传仍然是一个服务调用(不只是一些PUT命令到目录)。这样,如果需要,您仍然可以应用安全性。直到它为止,文件只不过是一个字节数组,因此您可以让您的Web服务接受一个字节数组并将其写入正确的位置。如果我对你正在使用的技术有更好的了解(php,asp.net,jsp等)那么我可能会提出更精确的建议。
HTH
答案 1 :(得分:1)
您可以使用SOAP attachments,或者如果不使用SOAP,则使用类似的东西 - 指定文件名,内容类型和二进制数据,Base64编码。