我当前的代码如下,它只下载文件。如何在浏览器中查看所有类型的文件?
[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;
}
发布于 2018-06-15 18:51:23
我找到了只有pdf和图像的解决方案。只需在您的MediaTypeHeaderValue中添加MIME类型,并确保ContentDispositionHeaderValue为“内联”
response.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("inline");
对于pdf:
response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/pdf");
对于图像:
response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("images/jpeg");
根据图像类型改变您的MIME。对于microsoft文档,在mediaheadervalue中使用它的mime类型,然后在google chrome中安装离线google docs扩展
https://stackoverflow.com/questions/50869827
复制相似问题