【发布时间】:2016-06-01 05:59:17
【问题描述】:
我正在使用 Web 服务 WCF 以字节数组格式返回 PDF 文件。我只是返回我在这样的资源中拥有的 pdf 文件:
public byte[] displayPDF(string pdfName){
return Service.Properties.Resources.testFile;
}
但是在客户端,当我收到字节数组并将其写入我计算机上的文件时:
HttpClient client = new HttpClient();
client.MaxResponseContentBufferSize = 9999999;
var uri = new Uri("http://TestSite.azurewebsites.net/Service.svc/webHttp/displayPDF?pdfName=testFile.pdf");
var response = client.GetAsync(uri);
byte[] byteArray = response.Result.Content.ReadAsByteArrayAsync().Result;
var filePath = "C:\\Users\\Admin 1\\Documents\\temp.pdf";
System.IO.File.WriteAllBytes(filePath, byteArray);
它会在我的文档中写入一个 PDF 文件,但是当我单击它时,它说无法查看 PDF,因为它不受支持的文件类型或它可能已损坏。
我看过一些关于使用流发送而不是发送字节数组的帖子。我想知道是否有任何关于如何正确执行此操作的示例,以便我可以将字节数组或流或您建议的任何内容写入客户端的 pdf 文件,然后通过单击手动打开文件。
注意:我正在使用 REST 访问 Web 服务。因此,添加服务引用不是一种选择。
【问题讨论】:
-
感谢您的建议,但我无法像您的链接建议的那样向客户添加服务参考。我已经相应地更新了我的帖子。
-
这里的“服务”类型是什么?