我正在 ASP.NET MVC 2(在 .NET 4.0 框架下)中创建一个简单的控制器操作,它将调整文件的大小。
我有一个这样的控制器(我把它剪掉了一点):
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(没有调整大小;)),它返回一个损坏的 ZIP 文件。
我确定我只是做错了什么,但我终生无法发现它。
编辑
我已经在 Cassini 和 IIS 7.5 (Windows 7) 中进行了测试,并在这两种情况下都收到了问题。