如何为 iframe 中显示的动态 PDF 设置 "Save As..." 对话框中显示的文件名
How to set file name displayed in "Save As..." dialog for dynamic PDF displayed in iframe
我正在 ColdFusion 中动态生成 pdf,因此我们的服务器上没有实际的 PDF。每次用户点击 'download' 时,它都会通过打开另一个浏览器 window 动态创建 PDF,使用创建 pdf 的 window 中的 <iframe>
。
但是,我不确定如何更改用户单击 "Save As.." 时显示的实际文件名。目前,显示的文件名是用于生成 pdf 的 .cfm 文件的名称,例如my_pdf_generated.pdf
。理想情况下,我希望文件名称中有日期,例如my_pdf_generated_040918.pdf
,但我似乎找不到该怎么做。
这是当用户单击 'Download pdf' 时在单独的浏览器 window 中运行的代码。
<div class="title">
Loading your pdf. Your document may take a few moments to
load. Once it's loaded, you can save it to your device.</div>
<cfflush>
<iframe src="property_valuation.cfm?valco=<cfoutput>#URL.ValCo#</cfoutput>"
width="100%" height="100%" >
</iframe>
</div>
property_valuation.cfm:
... other code ...
<cfdocument format="pdf" margintop="1.0" marginbottom=".75" >
<html>
<head></head>
<body>
... generate pdf content here ...
</body>
</html>
</cfdocument>
答案如下:
我遗漏了一个 CFHEADER 语句,该语句允许用户右键单击时将使用的文件名参数,"Save as..."。您还可以将变量设置为日期和时间,并将该变量作为文件名的一部分包含在内,以使其唯一。
property_valuation.cfm:
<cfheader name="content-disposition" value="inline; filename=mypdf.pdf"/>
我正在 ColdFusion 中动态生成 pdf,因此我们的服务器上没有实际的 PDF。每次用户点击 'download' 时,它都会通过打开另一个浏览器 window 动态创建 PDF,使用创建 pdf 的 window 中的 <iframe>
。
但是,我不确定如何更改用户单击 "Save As.." 时显示的实际文件名。目前,显示的文件名是用于生成 pdf 的 .cfm 文件的名称,例如my_pdf_generated.pdf
。理想情况下,我希望文件名称中有日期,例如my_pdf_generated_040918.pdf
,但我似乎找不到该怎么做。
这是当用户单击 'Download pdf' 时在单独的浏览器 window 中运行的代码。
<div class="title">
Loading your pdf. Your document may take a few moments to
load. Once it's loaded, you can save it to your device.</div>
<cfflush>
<iframe src="property_valuation.cfm?valco=<cfoutput>#URL.ValCo#</cfoutput>"
width="100%" height="100%" >
</iframe>
</div>
property_valuation.cfm:
... other code ...
<cfdocument format="pdf" margintop="1.0" marginbottom=".75" >
<html>
<head></head>
<body>
... generate pdf content here ...
</body>
</html>
</cfdocument>
答案如下:
我遗漏了一个 CFHEADER 语句,该语句允许用户右键单击时将使用的文件名参数,"Save as..."。您还可以将变量设置为日期和时间,并将该变量作为文件名的一部分包含在内,以使其唯一。
property_valuation.cfm:
<cfheader name="content-disposition" value="inline; filename=mypdf.pdf"/>