猿问

asp.net core PhysicalFileResult导致浏览器地址栏访问图片变成了下载

[HttpGet("DownloadFile")]
public IActionResult DownloadFile([FromServices]IHostingEnvironment env, string id)
{
Attachment attachment = AttachmentSystem.GetById(User.Corp.Id, id);
if (attachment == null)
{
return NotFound();
}
string path = Path.Combine(env.ContentRootPath, attachment.SavePath);
if (!System.IO.File.Exists(path))
{
return NotFound();
}
return PhysicalFile(path, MimeMapping.GetMimeMapping(Path.GetExtension(path)), attachment.SourceName + Path.GetExtension(path));
}

用以上方式输出图片,地址栏直接访问会下载图片,怎么修改才能直接在浏览器里显示


慕神8447489
浏览 693回答 1
1回答

郎朗坤

可以使用 FileStreamResult ,下面的代码实测有效public&nbsp;async&nbsp;Task<IActionResult>&nbsp;Index(){&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;fs&nbsp;=&nbsp;new&nbsp;FileStream("wwwroot/images/logo.png",&nbsp;FileMode.Open);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;FileStreamResult(fs,&nbsp;"image/png"); }
随时随地看视频慕课网APP
我要回答