代码之家  ›  专栏  ›  技术社区  ›  Tass Times

如何设置“另存为…”中显示的文件名iframe中显示的动态PDF对话框

  •  3
  • Tass Times  · 技术社区  · 7 年前

    我在ColdFusion中动态生成pdf,因此我们的服务器上没有实际的pdf。每次用户点击“下载”时,它会通过打开另一个浏览器窗口,使用 <iframe> 在创建pdf的窗口中。

    但是,我不知道如何更改用户单击“另存为…”时显示的实际文件名。当前,显示的文件名是的名称。用于生成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\u估价。cfm:

    ... other code ...
    <cfdocument format="pdf"  margintop="1.0" marginbottom=".75" >
    <html>
    <head></head>
    <body>
       ... generate pdf content here ...
    </body>
    </html>
    </cfdocument>
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Tass Times    7 年前

    答案如下:

    我缺少一条CFHEADER语句,该语句允许在用户右键单击“另存为…”时使用filename参数。您还可以将变量设置为日期和时间,并将该变量作为文件名的一部分,以使其唯一。

    property\u估价。cfm:

    <cfheader name="content-disposition" value="inline; filename=mypdf.pdf"/>