【问题标题】:Setting PDF file name dynamically动态设置 PDF 文件名
【发布时间】:2011-05-14 16:16:00
【问题描述】:

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

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

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

我之所以使用“inline”而不是“attachment”,是为了强制用户直接在浏览器中查看PDF,而不是打开acrobat查看PDF。到目前为止一切都很好,但是当用户想要保存文件时,应该将文件名设置为“getFileName(DateTime.Now)”,而不是像myPDFpage.pdf.

在没有将内容处置设置为“附件”的情况下,用户是否可以使用我使用 getFileName() 方法指定的名称保存文件?

提前致谢。 巴达伦

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我了解您尝试执行的操作是不可能的,因为“内联”处置类型存在问题(我认为这是 PDF 和/或浏览器问题)。

      我在同样的问题上苦苦挣扎,发现这篇文章承诺了一个解决方案:
      How to show or download a pdf file from an ASP.NET 2.0 page (iTextSharp version)

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

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

      【讨论】:

      • 我几年前写过那篇文章。我刚刚做了一些小的修正。我确认:它工作正常。
      猜你喜欢
      • 2014-11-08
      • 2022-12-23
      • 1970-01-01
      • 2014-04-22
      • 2018-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      相关资源
      最近更新 更多