在新选项卡中打开FileResult图像

时间:2017-08-17 15:16:56

标签: c# asp.net-mvc

我有以下代码:

public FileResult GetImage(int id = 0)
{
    return File(MyImage, "image/jpg", $"{id}.jpg");//MyImage ==> byte[]
}

我想在新标签中打开它:

<a target="_blank" href="/Home/GetImage/2">
    <img src="/Home/GetImage/2"/>
</a>    

但不幸的是,它开始下载而不是在新标签中打开它。这有什么问题?

3 个答案:

答案 0 :(得分:2)

通过删除fileDownloadName参数解决了问题:

public FileResult GetImage(int id = 0)
{
    return File(MyImage, "image/jpg");
}

基于它documentation使用fileDownloadName参数是因为:

  

在浏览器中显示的文件下载对话框中使用的文件名。

答案 1 :(得分:0)

这可能是因为"image/jpg"不是有效的MIME类型。

您要找的是"image/jpeg"(请注意jpeg中的“e”?)。浏览器无法识别"image/jpg"并尝试下载。

Here is a full list of MIME-Types.

答案 2 :(得分:0)

FileResult设置Content-Disposition标题,告诉浏览器将其作为下载服务。

您应该使用Intel C++ compiler forum,但不会设置该标头。