由于web api 2查询

时间:2018-04-19 07:00:24

标签: pdf url asp.net-web-api asp.net-web-api2

在Web API项目中,我有像所有人一样通过URL查看pdf的功能,

        [HttpGet]
        [Route("upload/document")]
        public HttpResponseMessage GetPdf()
        {
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
            string fileName = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory.ToString() + @"Documents\test.pdf");
            FileStream fileStream = File.OpenRead(fileName);
            response.Content = new StreamContent(fileStream);
            response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");


            return response;

        }

我想要 http://localhost:54316/upload/document/test.pdf 这样的网址 但不应该得到网址,当我在邮递员中运行时,它可以下载。

2 个答案:

答案 0 :(得分:1)

  1. mime类型不需要octet-stream。据说,使用流导致浏览器只下载文件。我不得不更改类型application/pdf
  2. 添加将content-disposition更改为inline的标头。因为内容处置已经设置为attachment
  3. string mimeType = "application/pdf"
    Response.AppendHeader("Content-Disposition", "inline; filename=" + fileName);
    

答案 1 :(得分:0)

我自己解决了这个问题,这是我的代码

[HttpGet]
[Route("api/test/urlVideo")]
public string urlVideo()
{
  string baseUrl = Request.RequestUri.GetLeftPart(UriPartial.Authority) + "/uploads/videos/test.mp4";
            return baseUrl;
}

它的工作完美。所以我得到了

  

http://hostname/uploads/documents/text.pdf