我想動態創建一個內聯PDF,當用戶選擇保存它時,用我的自定義文件名提示。根據the documentation,saveasname
屬性應該做我想要的。在IE 9和Firefox中被忽略的內容處置13
(format =「PDF」only)當用戶保存寫入瀏覽器的PDF文件時,SaveAs對話框中出現的文件名。
但是,IE 9和Firefox 13.0.1中出現的情況是,SaveAs對話框中出現的文件名與我的CF模板相同,但帶有PDF擴展名。 (換句話說,我的代碼位於makepdf.cfm
,SaveAs提示我保存makepdf.pdf
。)但是,在Chrome中,它完美地工作。 (所有的在Windows 7)
這裏是我的代碼來創建PDF:
<cfdocument format="pdf" bookmark="true" saveasname="MyReport.pdf">
如果我明確地聲明內容部署和內容類型,像這樣
<cfheader name="Content-Disposition" value="inline; filename=MyReport.pdf">
<cfcontent type="application/x-pdf">
<cfdocument format="pdf" bookmark="true" saveasname="MyReport.pdf">
- 鉻告訴我「Content-Disposition」已被宣告兩次
- Firefox告訴我PDF文件已損壞
- IE會忽略它(和仍然沒有顯示正確的文件名)
如果我僅僅靠頭
<cfheader name="Content-Disposition" value="inline; filename=MyReport.pdf">
<cfcontent type="application/x-pdf">
<cfdocument format="pdf" bookmark="true">
我得到相同的行爲的代碼的第一個片段。
我知道如何讓瀏覽器提示下載,而不是顯示內聯,並且一切按預期工作,但那不是預期的行爲。
我需要在文件名中使用時間和日期,並且最終用戶不夠精於避免覆蓋他們的文件(他們是否應該選擇保存文件)。
有什麼我錯過,會讓IE和Firefox做他們應該做的?其他瀏覽器會做什麼?移動Safari?
URL重寫是不是這個特殊項目的選項,但是這是一些有用的信息,以對未來。 – ale 2012-07-23 17:59:59
原來你不需要URL重寫 - 只需將一個斜槓和你選擇的文件名追加到腳本URL就足夠了。查看更新的答案。 – CfSimplicity 2012-07-23 21:24:19