Chrome PDF Viewer“保存到磁盘”功能 - 是否可以控制保存的文件扩展名?

时间:2011-08-29 07:50:52

标签: c# asp.net google-chrome

在ASP.NET 2.0应用程序中,在Windows上使用Google Chrome 13。

当用户浏览特定的aspx页面时,我的应用会动态生成PDF报告。在大多数情况下,在各种浏览器上工作正常。

但是,在Chrome上,当使用Chrome的PDF查看器时,可能会发生以下情况: - 用户按下查看器右下角的浮动磁盘图标以保存PDF文档。该文件与aspx页面的名称一起保存。例如Report.aspx。

如果我在Adobe Reader中打开下载的aspx文件,它就会以PDF文档的形式打开。但有没有办法让chrome默认保存文件的名称以扩展名为“.PDF”?

编辑:

报告生成页面的代码如下所示:

protected void Page_Load(object sender, EventArgs e)
{
    Response.Clear();
    Response.ContentType = "application/pdf";
    byte[] data = GenerateReportHere(); // dynamically generate PDF report

    Response.AddHeader("Content-Length", data.Length.ToString());

    Response.BinaryWrite(data);
    Response.Flush();
    Response.End(); 
}

请注意,我不想使用“Content-Disposition”标题,如:

    Response.AddHeader("Content-Disposition", "attachment; filename=Report.pdf");

因为这会导致浏览器询问用户是否要下载文件。在Chrome中,它不会在PDF查看器中显示它 - 只需让用户有机会在下载后使用与“.pdf”文件扩展名相关联的任何程序打开文件。

2 个答案:

答案 0 :(得分:2)

在将PDF文件流式传输到浏览器时,您应该尝试使用content-disposition标题。例如,

HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=[ReportName].pdf");

// Code to stream pdf file content to the client
...

有关内容处理的详细信息,请参阅

答案 1 :(得分:1)

由于Chrome是最新的HTML5,我们可以使用闪亮的新download属性!

<a href="http://www.domain.com/painful.pdf" download="newname">Works</a>