Web API 2 c#如何在网页中呈现文件

本文关键字:网页 文件 API Web | 更新日期: 2023-09-27 18:05:50

当我向这个特定句柄发送请求时,使用以下代码在网页中呈现文件

[HttpGet]
[Route("learning/{pdfid}")]
public HttpResponseMessage RenderProjectDocumentById(string pdfid)
{
    var doc = _projectDocumentService.GetProjectDocument(pdfid);
    var contentType = "application/octet-stream";
    var res = Request.CreateResponse(HttpStatusCode.OK);
    res.Content = new StreamContent(new MemoryStream(doc.BinaryData));
    res.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
    res.Content.Headers.ContentDisposition.FileName = doc.name + "." + doc.doc;
    res.Content.Headers.ContentType = new MediaTypeHeaderValue(contentType);
    return res;
}

如果我在浏览器中输入

http://localhost: 49454/学习/5711130 b9aa56d03a0e2f26f

它将在网页中下载文件self

但是如果我从WPF应用程序发送相同的请求,如下

var response = await Client.GetAsync("/learning/" + doc.Id);

如何从html页面下载?

Web API 2 c#如何在网页中呈现文件

尝试将content-type从application/octet-stream更改为application/pdf

application/octet-stream作为MIME类型时,浏览器将作为通用文件下载。