我有一个asp.net wep页面,我在其中对WCF REST服务进行POST调用,并返回该文件的流。
服务器代码:
public Stream GetDocument() {
String headerInfo = "attachment; filename=" + FileName;
WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.OK;
WebOperationContext.Current.OutgoingResponse.Headers["Content-Disposition"] = headerInfo;
WebOperationContext.Current.OutgoingResponse.ContentType = "application/octet-stream";
return new MemoryStream(rawDoc.ByteArray);
}
客户代码:
sendPost(Dictionary<string, string> msgDump)
{
var jsonContent = JsonConvert.SerializeObject(msgDump);
var buffer = System.Text.Encoding.UTF8.GetBytes(jsonContent);
var byteContent = new ByteArrayContent(buffer);
byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var response = await client.PostAsync("http://localhost:63301/DocumentService.svc/GetDocument", byteContent);
var contentStream = await response.Content.ReadAsStreamAsync();
}
我收到了文件流,但此时我不知道如何让浏览器为您下载文件。我将在IIS上托管这个,所以我不想做任何类型的file.create到特定的路径。经过大量的谷歌搜索,我无法想出一个解决方案。因为我没有复制所有代码,所以代码可能看起来很糟糕,但你应该得到要点。
感谢您的帮助!