.Net MVC FileResult损坏png文件,关闭一个字节

时间:2011-11-04 18:01:56

标签: .net asp.net-mvc-3 mime-types

我们有一个图像文件下载操作。 代码是

public virtual FileResult Attachment(Guid Id)
        {
            ...code for attachment..

            Response.AddHeader("content-disposition", "attachment; filename=" + attachment.FileName);
            Response.AddHeader("content-type", attachment.ContentType);
            Response.AddHeader("cache-control", "must-revalidate");
            return File(attachment.Content, attachment.ContentType);

        }

当我们测试此操作时,我们总是会收到损坏的文件。我将损坏的文件与原始用户notepad ++进行了比较,发现文件中添加了一个新的行字符。我删除了记事本++中的新行,图像已修复。

我们检查了附件的内容,我们确信内容是正确的。

我们正在运行.net mvc 3.我们对png的内容类型是“image / png”

2 个答案:

答案 0 :(得分:1)

在添加自定义标头之前(或之后)检查响应中已填充的其他标头。可能是因为您正在获得导致问题的一些无关的标题。

可能就像调用ClearHeaders

一样简单

Live Http Headers firefox插件等工具也可能会有所帮助。

答案 1 :(得分:1)

Fiddler结果(即fiddler2.com)并查看标题和结果。您也可以保存结果并测试文件。换行符是开头还是结尾?如果是开始,它可能是标题。如果它最后,你运行任何可能添加空结果的ActionFilters(或者你认为)实际上是一个新增的新行吗?用另一个文件测试它 - 结果相同吗?

如果可能的话,在另一个系统上测试 - 结果相同吗?