ASP.NET MVC:如何从流中返回文件

时间:2011-08-23 14:20:39

标签: asp.net-mvc download dotnetzip

我正在尝试返回压缩文件

public FileResult Download()
        {
                MemoryStream outputStream = new MemoryStream();

                using (ZipFile zip = new ZipFile())
                {
                    zip.AddEntry("asdasd.html", "<html>fgdfg</html>");
                    zip.AddEntry("asdassssd.html", "<html>asddsaf</html>");
                    zip.Save(outputStream);
                }

               return File(outputStream, "application/zip", "file.zip");
}

但作为响应,它返回错误(以XML格式):

  
    

XML解析错误:找不到元素位置:     moz-nullprincipal:{122aa411-1418-43f5-b950-4347af7c7217}行号     1,第1栏:

  

我的回复有什么问题(我使用DotNetZip压缩文件)?

1 个答案:

答案 0 :(得分:3)

您可能需要将MemoryStream重置为其缓冲区的开头,然后再将其作为文件返回到客户端。

outputStream.Seek(0, SeekOrigin.Begin);

我还建议您使用像Fiddler这样的代理来检查Http响应,以便更好地处理您的请求发送的内容。