在項目中用到文件下載功能,用的是FileStreamResult方法:測試
return File(new FileStream(path, FileMode.Open), Utilities.MimeType(fileName), fileName);
下載普通文件都正常,測試時發現下載含有中文名的word和excel文件時直接返回了方法的名稱,後來查了不少資料,終於找到解決辦法,是文件名編碼問題。編碼
在返回FileStreamResult以前將文件名稱手動編碼:spa
fileName = HttpUtility.UrlEncode(fileName, Encoding.GetEncoding("UTF-8")); return File(new FileStream(path, FileMode.Open), Utilities.MimeType(fileName), fileName);
加上後一切正常。excel