我执行以下操作:
<cffunction name="GenerateTemporaryDocument" access="remote" returntype="string">
<cfargument name="Source" type="string" required="yes" >
<cfargument name="Fields" type="array" required="yes" >
<cfset Source = "\#Source#" >
<cfset pdfName = ".\Generated\#CreateUUID()#.pdf" >
<cfpdfform action="populate"
source="#Source#"
destination="#pdfName#"
overwrite="yes">
<cfpdfform action="populate"
source="#Source#"
destination="#pdfName#"
overwrite="yes">
<!---
some form fields that get filled
--->
</cfpdfform>
<cfpdf action="write"
source="#pdfName#"
destination="#pdfName#"
flatten="yes"
overwrite="true">
<cfpdf action="protect"
source="#pdfName#"
newOwnerPassword ='xxxxx'
permissions = 'AllowPrinting'>
<cfreturn pdfName>
</cffunction>
我会说99/100次,效果很好。但是每隔一段时间,我会在保护命令的行上看到此错误:
ColdFusion无法删除文件 C:\ inetpub \ wwwroot \ Generated \ D6DBE4BD-AC16-2D87-C6CC1FDB990820C2.pdf。
是否有明显的理由会这样做?如果没有,有没有办法我可以进行while循环并让cf等待文件可用?
答案 0 :(得分:0)
仅供参考,我在
找到了 Charlie Arehart 和其他人的建议来自 Charlie Arehart 的第一条评论:
<块引用>“您实际上并不需要使用这些 CFPDF* 标签创建文件
<块引用>...您可以使用 NAME 属性 (而不是目的地)指示一个变量来保存输出 一个较早的步骤,然后在稍后的 SOURCE 中使用该变量 步骤。
<块引用>... 可能想要故意创建文件,但也许 至少如果你只在最后一步做,它可能会解决......问题。
<块引用>... /Charlie(服务器疑难解答,carehart.org)”
以及 MarkMetcalf 沿着这些方向提出的解决方案。