0

我正在使用以下代码将 PDF 发送到浏览器

        Response.ClearContent();
        Response.ClearHeaders();
        Response.AddHeader("Content-Length", fileBytes.Length.ToString());
        Response.ContentType = "application/pdf";
        Response.BinaryWrite(fileBytes);
        Response.Flush();
        System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest();

它适用于除 MAC 中的 Safari(版本 5.x)以外的所有浏览器(pdf 已正确嵌入在浏览器中)。此外,它适用于 MAC 中的 Firefox 和 Chrome。
我想知道是浏览器的问题吗?还是 Response.BinaryWrite 有问题?

[编辑]
Safari 行为,pdf 根本没有加载。显示一个进度条并一直加载,可能与安装的PDF插件有关?那么,如何弄清楚为什么在 Safari 中出现这种行为?

[编辑]
此错误记录在 Safari 开发人员工具控制台“加载资源失败:插件处理加载”中,这似乎与 PDF 插件有关。

4

1 回答 1

0

试试这个,它对我很好

        Response.ClearContent();
        Response.ClearHeaders();
        Response.ContentType = "application/pdf";
        Response.Buffer = true;
        Response.AppendHeader("Accept-Header", attachmentObj.AttachmentFile.Length.ToString());
        Response.AppendHeader("content-disposition", "attachment; filename=\"" + HttpUtility.UrlEncode(attachmentObj.Description, System.Text.Encoding.UTF8) + "\"");
        Response.AppendHeader("Pragma", "public");
        Response.BinaryWrite((byte[])attachmentObj.AttachmentFile.ToArray());        
        Response.Flush();
        Response.End();
于 2012-01-03T11:18:48.800 回答