Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.Net MVC文件结果png文件损坏,关闭一个字节_.net_Asp.net Mvc 3_Mime Types - Fatal编程技术网

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

.Net MVC文件结果png文件损坏,关闭一个字节,.net,asp.net-mvc-3,mime-types,.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("con

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

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++进行了比较,发现文件中添加了一个新行字符。我删除了记事本++中的新行,图像已修复

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


我们正在运行.NETMVC3。png的内容类型是“image/png”

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

它可能像打电话一样简单

诸如LiveHTTP Headers firefox插件之类的工具可能也会有所帮助。

对结果(即fiddler2.com)进行Fiddler处理,并查看标题和结果。您也可以从那里保存结果并测试文件。新行是在开头还是结尾?如果是开头,则可能是标题。如果是在末尾,您是否运行了任何ActionFilters,它可能会添加一个空结果(或者您认为是这样),而实际上是一个添加的新行?用另一个文件测试它-相同的结果


如果可能,在另一个系统上进行测试-结果相同?

什么是附件内容??如何设置?验证是否正确?是的,验证是否正确。当您进行测试时,您是作为单元测试进行测试,还是直接在web浏览器中进行测试?我两者都做了。单元测试并在控制器中插入一段代码以强制写入文件系统。这两个结果都是正确的。谢谢,在BaseController的override OnActionExecuting方法中发现了问题。它在任意位置向输出插入新行。应该是DailyWTF的好候选人:)