Pdf浏览器请求进入深度冻结状态

awr*_*ley 5 browser pdf download

客户有一份重量为1.63 MB的pdf通讯,所以不是很大.

我们发送一封电子邮件,其中包含指向pdf的链接.或者用户在网站的主页上找到链接.没关系.

问题是,当用户请求PDF时,浏览器有时会进行深度冻结.即,您需要使用任务管理器来终止浏览器实例.

你可以在这里测试pdf: 时事通讯

让它变得困难的是它并不总是失败.以下是我在哪里以及我尝试过的内容的摘要.

BROWSERS

使用pdf失败的最可能的浏览器是Google Chrome.但是,IE有时也会冻结.

错误

谷歌浏览器有时会返回以下错误(经过漫长的等待):

"处理页面时出错.出现文件I/O错误.文件连接超时."

IE只是在没有呜咽的情况下冻死了.

ACROBAT版本

该文件最初由设计工作室在Adobe InDesign CS3中创建.我们刚收到pdf.我尝试使用Acrobat 7重新保存文件,以防出现兼容性问题.这似乎在一台机器上清除了问题,但在其他机器上却没有......

谷歌的结果

谷歌搜索显示Chrome和PDF存在一些问题.我还没有找到任何解决方案.这仍然无法解释为什么IE有时失败.

其他措施

我在测试之间清除每个浏览器的缓存.所以它不能只是一个错误的下载.

用ACROBAT PRO打开文件

以这种方式打开文件没有问题.

网络服务器

Web服务器人员已经测试了该文件并且没有任何问题.他们可以在日志中找不到任何问题,这表明文件已下载,并且问题发生在浏览器中.

救命!

该通讯本应该在两天前发布,但我们正在试图解决这个问题.坏消息是我已经没有想法了.


编辑:

解决方法:

我跟进了pestaa的建议(见下面的答案),它提供了一个有效的解决方法.对于用户类型(脑炎的医疗慈善机构,可能让患者留下脑损伤)不是最佳的,但它有效.即,附上以下http标头:

Content-Disposition: attachment
Run Code Online (Sandbox Code Playgroud)

为此,我创建了一个页面,其中包含一个包含以下代码的按钮:

protected void downloadButton_Click(object sender, EventArgs e)
    {
        string fileName = "newsletter49.pdf";

        string filePath = Server.MapPath("~/images/ipdf/mailings/" + fileName);
        Response.Clear();

        Response.AppendHeader("content-disposition", "attachment; filename=" +       fileName);
        Response.ContentType = "application/octet-stream";
        Response.WriteFile(filePath);
        Response.Flush();
        Response.End();
    }
Run Code Online (Sandbox Code Playgroud)

页面的html(包括按W3C标准要求下载Acrobat Reader的按钮):

<h2>
        Our Autumn/Winter 2010 Newsletter is now available</h2>
    <p>
        Please click on the button below:</p>
    <asp:Button ID="downloadButton" runat="server" OnClick="downloadButton_Click" Text="Download Newsletter" />
    <div style="margin-top: 10px; border: 1px solid #ccc; background: #ebebeb; padding: 6px;">
        <p>
            If you do not have Adobe Acrobat Reader, you will not be able to read the Newsletter.
            To get Acrobat Reader, click the button below and download it from Adobe's website:</p>
        <a title="This link opens in a new window to allow you to download Adobe Reader!"
            href="http://get.adobe.com/uk/reader" target="_blank">
            <img alt="Get Adobe Reader for viewing PDF files" src="../Images/SharedImages/get_adobe_reader.gif"
                style="border: none;" /></a>
    </div>
Run Code Online (Sandbox Code Playgroud)

我在等着看是否有人能够弄清楚pdf可能出现的问题.否则,pestaa会得到饼干.


编辑2:

我已经接受了pestaa的建议,认为这是唯一可靠的课程.不理想,因为这是一个可以产生脑损伤的综合症的医疗慈善机构,所以下载然后打开pdf的额外步骤是繁重的.但是如果浏览器崩溃就没有用.

如果有人听说过这个问题,请发表评论.

pes*_*taa 6

这可能不是您正在寻找的,但如果下载PDF足够或精细,这是您在发送内容时需要附加的HTTP标头:

Content-Disposition: attachment
Run Code Online (Sandbox Code Playgroud)

这会强制浏览器弹出打开/保存对话框,并可能解决错误的IE案例.