我正在ASP.NET MVC 2(.NET 4.0框架下)创建一个简单的控制器动作,它将调整文件大小。FileResult返回损坏的文件
我有这样的(我剪了下来一点)控制器:
public ActionResult GetFile(int fileId, string fileSource) {
FileInfo file = repo.FindFileById(fileId);
//do some resizing
string mimeType = string.Empty;
switch(file.Extension) {
case ".jpg":
mimeType = "image/jpg";
break;
//some more stuff
default:
mimeType = "text/png";
break;
}
return File(file.FullName, mimeType);
}
在它保存精美的文件系统,我可以查看文件的大小,但在浏览器中文件不呈现。
我已经使用Charles来检查响应并返回HTTP状态200,但图像不可见。
如果我尝试保存图像并查看它,Windows图片浏览器会说它已损坏。
我也试过使用ZIP(sans resizing;)),它会返回一个损坏的ZIP文件。
我确定我只是在做错事,但我不能为我的生活发现它。
编辑
我已经在这两个测试卡西尼和IIS 7.5(Windows 7)中,并在这两种情况下,收到的问题。
我不是说这说明您的问题,但作为一个边评论,不应该默认为“text/html的”? – 2010-08-27 02:59:58
未经测试在黑暗中刺伤,请尝试使用FileResult而不是ActionResult? – ChadT 2010-08-27 04:41:52
你能否提供一个简化版本的图像调整大小的代码,说明问题以及我们可以用来重现此行为的示例图像? – 2010-08-27 06:25:57