动态设置PDF文件名

时间:2010-11-23 19:19:18

标签: c# asp.net internet-explorer firefox pdf

我希望我能够准确地解释我的情况。

我有一个ASP.NET页面,它使用以下代码转储用户的PDF文件:

Response.ContentType = "application/pdf";                
Response.AppendHeader("content-disposition", string.Format("inline; filename={0}", getFileName(DateTime.Now)));

我使用“内联”而不是“附件”的原因,因此我可以强制用户直接在浏览器中查看PDF,而不是打开杂技演员来查看PDF。到目前为止一切都很好,但是当用户想要保存文件时,文件名应该设置为“getFileName(DateTime.Now)”,而只需要将页面的名称设为 myPDFpage.pdf

无论如何,如果没有将内容处置设置为“attachment”,用户是否使用getFileName()方法指定的名称保存文件?

提前致谢。 badallen

2 个答案:

答案 0 :(得分:1)

这是acrobat在内联打开文件时处理文件的简单行为。据我所知,打开内联时没有办法决定这一点,因为这成为了Acrobat的责任。

答案 1 :(得分:0)

我理解你要做的事情是不可能的,因为“内联”处置类型存在问题(我收集它是PDF和/或浏览器问题)。

我正在努力解决同样的问题,并发现这篇文章承诺解决方案:
How to show or download a pdf file from an ASP.NET 2.0 page (iTextSharp version)

基本问题是,默认情况下,PDF将以其提供的页面的基本名称(没有文件扩展名的名称)保存;本文展示了如何使用动态命名的HttpHandler来传递PDF并控制文件名。

公平警告:我自己还没试过,所以我不能告诉你它是否有效。