我在ColdFusion中动态生成pdf,因此我们的服务器上没有实际的PDF文件。每次用户点击“下载”时,它都会通过打开另一个浏览器窗口动态创建PDF,在创建pdf的窗口中使用<iframe>
。
但是,当用户点击“另存为...”时,我不确定如何更改显示的实际文件名。目前,显示的文件名是用于生成pdf的.cfm文件的名称,例如, my_pdf_generated.pdf
。理想情况下,我希望文件在名称中包含日期,例如my_pdf_generated_040918.pdf
,但我似乎无法找到如何做到这一点。
当用户点击“下载pdf”时,这是在单独的浏览器窗口中运行的代码。
<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>
答案 0 :(得分:1)
以下是答案:
我错过了一个CFHEADER语句,该语句允许在用户右键单击“另存为...”时使用的filename参数。您还可以将变量设置为日期和时间,并将该变量作为文件名的一部分包含在内,以使其唯一。
property_valuation.cfm:
<cfheader name="content-disposition" value="inline; filename=mypdf.pdf"/>