1

我正在使用 EPPlus 库创建一个 .xlsx 文件,然后将其流式传输到浏览器。要流式传输我正在使用的代码:

HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.Buffer = true;
            HttpContext.Current.Response.ContentType = "application/octet-stream";
            HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.MapPath("xls/"+ download_results_filename));
            HttpContext.Current.Response.TransmitFile(Server.MapPath("xls/" + download_results_filename));
            HttpContext.Current.Response.Flush();

我的问题是这个。如果我将代码与库一起使用,则保存并打开文档一切都很好。但是,当我在服务器上创建文件并将其流式传输给用户时,使用上面的代码,我收到一条损坏的文件消息,具有更正或恢复文件的附加功能,我这样做并且文件显示正确;因此,如果使用上面的八位字节流方法将文件流式传输给用户会损坏文件,我应该如何将二进制数据流式传输给用户。我想将内容类型保持为“应用程序/八位字节流”,就好像我特别指出它是我在 iPad 上遇到问题的 excel 电子表格一样。

谢谢

4

1 回答 1

0

你看到这个例子了吗?

http://epplus.codeplex.com/wikipage?title=WebapplicationExample

它使用这条线

Response.BinaryWrite(pck.GetAsByteArray());
于 2014-04-02T20:00:49.130 回答