首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在浏览器中打开文件,而不是使用ASP.NET WebApi下载?

如何在浏览器中打开文件,而不是使用ASP.NET WebApi下载?
EN

Stack Overflow用户
提问于 2018-06-15 13:54:32
回答 1查看 1.3K关注 0票数 0

我当前的代码如下,它只下载文件。如何在浏览器中查看所有类型的文件?

代码语言:javascript
复制
[HttpGet]
    //[NoCacheHeader()]
    [Route("api/image/files")]
    public HttpResponseMessage GFiles(string ImageName)
    {
        var response = Request.CreateResponse(HttpStatusCode.OK);
        var path = "~/Image/" + ImageName;

            path = System.Web.Hosting.HostingEnvironment.MapPath(path);
            var ext = System.IO.Path.GetExtension(path);

            var contents = System.IO.File.ReadAllBytes(path);

            System.IO.MemoryStream ms = new System.IO.MemoryStream(contents);

            response.Content = new StreamContent(ms);

            //

            response.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
            response.Content.Headers.ContentDisposition.FileName = ImageName;
            //

            response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("Image/" + ext);
            return response;

    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-15 18:51:23

我找到了只有pdf和图像的解决方案。只需在您的MediaTypeHeaderValue中添加MIME类型,并确保ContentDispositionHeaderValue为“内联”

代码语言:javascript
复制
 response.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("inline");

对于pdf:

代码语言:javascript
复制
response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/pdf");

对于图像:

代码语言:javascript
复制
response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("images/jpeg");

根据图像类型改变您的MIME。对于microsoft文档,在mediaheadervalue中使用它的mime类型,然后在google chrome中安装离线google docs扩展

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50869827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档