我的问题:当用户单击 aspx 页面上的图像按钮时,代码隐藏会创建一个 zip 文件,然后我尝试将该 zip 文件流式传输给用户。
要流式传输文件,我使用以下代码:
FileInfo toDownload = new FileInfo(fullFileName);
if (toDownload.Exists)
{
Response.Clear();
Response.ContentType = "application/zip";
Response.AppendHeader("Content-Disposition", "attachment;filename=" +
toDownload.Name);
Response.AppendHeader("Content-Length", toDownload.Length.ToString());
Response.TransmitFile(fullFileName);
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
当我尝试执行此操作时,页面上出现以下错误:
Sys.WebForms.PageRequestManagerParserErrorException:无法解析从服务器接收到的消息。此错误的常见原因是通过调用 Response.Write()、响应过滤器、HttpModules 或启用了服务器跟踪来修改响应。详细信息:在“PK...”附近解析错误。
PK 是 zip 文件中将其标识为 zip 文件的前两个字符,因此我知道它正在尝试将 zip 文件发送到浏览器。但是,我的印象是浏览器正在尝试解释和/或呈现 zip 文件,而我希望它弹出一个下载文件选项。
想法?