如何在给定来自wcf服务的流的ASP.Net页面上下载文件

时间:2018-04-06 22:06:36

标签: c# asp.net wcf iis web

我有一个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到特定的路径。经过大量的谷歌搜索,我无法想出一个解决方案。因为我没有复制所有代码,所以代码可能看起来很糟糕,但你应该得到要点。

感谢您的帮助!

0 个答案:

没有答案