FileResult没有返回正确的文件类型和文件名

时间:2015-12-18 20:54:11

标签: asp.net asp.net-mvc epplus fileresult

我有一个名为GenerateReport的ActionResult的ASP.NET MVC应用程序。我正在尝试返回一个字节数组来保存Excel文件。以下是片段:

var contentType = "application/vnd.ms-excel";
var fileName = "Statistics.xlsx";

...

var fileBytes = package.GetAsByteArray();
return File(fileBytes, contentType, fileName);

当我被提示保存文件时,它有时(但不总是)询问我想用“GenerateReport”做什么。它将文件命名为与ActionResult相同,并且它没有给它一个文件类型。我会请求保存它,它会说它无法保存。我会选择重试,它会保存好。然后,如果我将其重命名为.xlsx,则所有数据都存在且正确。我正在使用IE9和Chrome,我没有注意到它发生在Chrome中。不幸的是,它需要在IE9中工作。

有人知道为什么有时候我的内容类型和文件名没有?

1 个答案:

答案 0 :(得分:-1)

检查Content-Encoding的响应。这可能是像PHP File Serving Script: Unreliable Downloads?

这样的问题