在WCF服务中,有一种上传图像文件的方法:
UploadImage(Stream imageData);
编辑-如答案所示,下一行是错误的,并且有可能!
使用Stream时,此方法不允许使用其他参数,但需要使用其他参数。
我知道有一些开源项目可以处理多部分流,可以在其中传递更多参数,但是我认为请求标头可能是一个更简单的解决方案。
因此,我想知道在这种情况下使用“请求标头”方法的不利之处是什么?
谢谢!
使用Stream时,此方法不允许使用其他参数,但需要使用其他参数。
并不真地。这应该工作。
[OperationContract,WebInvoke(UriTemplate="{name}")]
UploadImage(Stream imageData, string name);
这是一个工作样本
async void TestMethod()
{
Task.Run(() =>
{
var host = new WebServiceHost(typeof(MyContract), new Uri("http://0.0.0.0:8088/Test"));
host.Open();
});
await Task.Delay(2000);
new Webclient().UploadData("http://localhost:8088/Test/UploadImage/abc.bmp", new byte[] { 65, 66, 67, 68, 69 });
}
[ServiceContract]
class MyContract
{
[OperationContract, WebInvoke(UriTemplate = "/UploadImage/{name}")]
public void UploadImage(Stream s, string name)
{
Console.WriteLine(name + " -> " + new StreamReader(s).ReadToEnd());
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句