coldfusion - CFPDF action="protect" ColdFusion 无法删除文件
问题描述
我执行以下操作:
<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 等待文件可用?
解决方案
仅供参考,我找到了 Charlie Arehart 和其他人的建议
来自查理·阿雷哈特的第一条评论:
“您真的不需要使用这些 CFPDF* 标签创建文件
...您可以使用 NAME 属性(而不是目标)来指示一个变量来保存前面步骤的输出,然后在后面步骤的 SOURCE 中使用该变量。
...可能想要有意创建文件,但至少如果您只在最后一步进行,它可能会解决...问题。
... /查理(服务器疑难解答,carehart.org)”
以及 MarkMetcalf 的解决方案。
推荐阅读
- swift - Xcode: Your target contains an unsupported Swift Version
- matlab - 子图大小不同
- node.js - Passing data from opened window
- linux - 未能插入自定义内核模块
- c# - 如何以编程方式创建 X509 存储密钥以用于加密?
- python - 将列表中附加的帧写入 OpenCV 中的视频
- sapui5 - 页面放置在 SAPUI5 中的页面内时出现滚动问题
- javascript - 如何创建书签来调用包含一些内容的新弹出窗口?
- awk - 如何使 sed 命令处理非用户键入的输入参数中的转义字符?
- xcode - Xcode 12 不允许 ⌘⌥← / ⌘⌥→ “显示上一个选项卡”/“显示下一个选项卡”的快捷方式