【问题标题】:Viewing & adding PDF to database simultaneously同时查看和添加 PDF 到数据库
【发布时间】:2013-03-01 13:40:56
【问题描述】:

目前我正在通过这种方式将页面上的数据转换为 PDF:

<cfdocument format="PDF">
  <cfoutput>
    #pageContent#
  </cfoutput>
</cfdocument>

#pageContent# 是使用 cfsavecontent 创建的变量

它的工作方式是我在页面底部有一个“导出到 PDF”链接,其中包含一个 url 变量 - 此链接指向同一页面,但传入的变量告诉它输出 PDF。

我的问题是,当点击链接创建PDF时,有没有办法同时将PDF上传到数据库?

我知道我必须使用 cffile action="Upload" 和类似的,但我不确定如何告诉页面何时打开了 PDF。

希望这是有道理的。

【问题讨论】:

  • 您运行的是什么版本的 CF?我想到了几件事。 1) 将页面内容保存到数据库,然后再次重新生成 PDF,稍后显示。 2)您可以将其cffile action="write" 到文件系统或内存中以生成文件,然后将其读回变量以将其写入数据库。或 3) cffile action="write" 将文件写入文件系统,获取 URL 和路径,然后将其写入 DB,这样您就无需将文件存储在 DB 中,而只需存储路径并保留文件文件系统。

标签: sql sql-server-2008 pdf coldfusion coldfusion-10


【解决方案1】:

您可以使用cfdocumentfilename 属性将文件直接保存到服务器中您选择的位置。 CFdocument Docs.你也可以考虑使用CFPDF

文件名 - 可选 - 包含 PDF 的文件的路径名或 FlashPaper 输出。如果省略文件名属性,ColdFusion 会在浏览器中显示输出。

<cfdocument filename = "c:/~" ...> <!--- filename attribute to save to server --->
   #pageContent#
</cfdocument>

<cfquery ...>
    <!--- sql --->
</cfquery>

<!--- once your document is saved and database updated--->
<cflocation url = "[your saved file].pdf"...>
<!--- or as Peter Suggested --->
<cfcontent type="application/pdf" file="[your saved file].pdf">

【讨论】:

  • 两次转换为 PDF 是浪费资源和时间 - 要么使用文件属性 cflocation 要么 cfcontent
  • 我同意,我正在考虑取出第二个 cfdocument 并提供 cflocation 解决方案。我想我会这样做的。
  • 写入文件后,您可以使用 cfthread 进行插入查询,这样用户就不必等待该部分。
猜你喜欢
  • 1970-01-01
  • 2020-09-22
  • 1970-01-01
  • 2018-07-16
  • 2011-10-03
  • 2023-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多