我需要在WCF中实现的REST服务中实现以下场景:
所有这些都是从客户的角度在单个操作中完成的。
It's pretty easy in a non-REST service。我如何在REST服务中执行此操作?我从哪里开始?
答案 0 :(得分:0)
棘手的部分是XMLHttpRequest
对象不支持文件上传。
因此,常见的解决方法是使用Flash或其他插件上传文件。或者使用IFrame
上传文件。
例如,有许多插件可以自动执行此过程 http://jquery.malsup.com/form/#file-upload
服务器部分并不困难。
您的Request
将包含Files
属性,其中包含已上传的文件。保存文件,并在响应中返回您想要的任何内容。
查看上述插件中的示例,以便在客户端处理响应。
答案 1 :(得分:0)
由于您的链接问题不是直接通过HTTP进行流式传输,您当然可以在REST服务中发送字节数组。这是服务合同的例子:
[ServiceContract]
public interface IService
{
[OperationContract]
[WebInvoke(Method = "POST")]
byte[] GetByteData(byte[] data);
}
数据将作为base64编码的字符串发送。发送消息的示例:
<base64Binary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">QmFzZSA2NCBTdHJlYW0=</base64Binary>