在项目中用到文件下载功能,用的是FileStreamResult方法:

return File(new FileStream(path, FileMode.Open), Utilities.MimeType(fileName), fileName);

下载普通文件都正常,测试时发现下载含有中文名的word和excel文件时直接返回了方法的名称,后来查了很多资料,终于找到解决办法,是文件名编码问题。

在返回FileStreamResult之前将文件名称手动编码:

 

fileName = HttpUtility.UrlEncode(fileName, Encoding.GetEncoding("UTF-8"));
return File(new FileStream(path, FileMode.Open), Utilities.MimeType(fileName), fileName);


加上后一切正常。

相关文章:

  • 2022-12-23
  • 2021-11-13
  • 2022-12-23
  • 2021-12-21
  • 2021-12-24
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-10
  • 2022-02-09
  • 2021-05-18
  • 2022-02-18
  • 2022-12-23
相关资源
相似解决方案