2010-11-23 57 views
2

我希望我能夠準確地解釋我的情況。動態設置PDF文件名

我有轉儲出PDF文件用下面的代碼在用戶的ASP.NET頁面:

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

我爲什麼用「內聯」,而不是「附件」的原因,所以我可以強制用戶直接在瀏覽器中查看PDF,而不是打開acrobat查看PDF。到目前爲止一切都很好,但是當用戶想要保存文件時,文件名應該設置爲「getFileName(DateTime.Now)」,而不是像myPDFpage.pdf這樣的頁面的名稱。

無論如何,沒有將content-disposition設置爲「attachment」,用戶可以使用getFileName()方法指定的名稱來保存文件嗎?

在此先感謝。 badallen

回答

1

這是acrobat在內聯打開文件時處理文件的簡單行爲。據我所知,在內聯開放時沒有辦法規定這一點,因爲這成爲Acrobat的責任。

0

我明白你想做什麼是不可能的,因爲存在'內聯'處置類型(我收集它是PDF和/或瀏覽器問題)的問題。

我用同樣的問題掙扎,發現這篇文章並承諾解決方案:的
How to show or download a pdf file from an ASP.NET 2.0 page (iTextSharp version)

的基本問題是,默認情況下PDF文件將用鹼姓名(名稱沒有文件擴展名)保存它的服務頁面;本文展示瞭如何使用動態命名的HttpHandler來傳遞PDF並控制文件名。

公平的警告:我還沒有嘗試過這個,所以我不能告訴你它是否會工作。

+1

幾年前我寫了那篇文章。我剛剛做了一些小的更正。我確認:它工作正常。 – 2010-12-01 14:49:37