2

我正在使用 cfcontent 从 Web 根目录外部流式传输图像。虽然在浏览器中直接调用各个页面时图像正确显示,但图像在生成的 pdf 内显示一个红色 X。在导出页面上:

<cfsavecontent variable = "gridCode">
    <cfinclude template="pathToGeneratedPage.cfm" >     
</cfsavecontent>
<cfdocument format="pdf" filename="#filename#" overwrite="yes" localUrl="yes">
    <cfdocumentsection >
        <cfoutput>#gridCode#</cfoutput>     
    </cfdocumentsection>
</cfdocument>

在要生成内容的页面上:

<img src="pathToDisplayPhoto.cfm?image=#someImage#" />

在 displayPhoto.cfm 页面上:

<cfcontent type="image/*" file="#pathToUploadFolderOutsideWebRoot##url.image#" deleteFile = "No">

我包含了 cfdocument 属性 localUrl="yes" 因为默认(否)不起作用。明确设置为“否”也不起作用。

有什么建议么?

4

2 回答 2

2

我正在保存创建的 pdf 并查找localUrl="yes"(或=true)失败。

<img src="file:\\\#replace(getCurrentTemplatePath(),"my.cfm")#images\my.png">

为任何在桶底寻找想法的人工作。getCurrentTemplatePath() 获取文件名和路径,所以我不得不删除它(因此是 replace(...,"my.cfm")。我也尝试了 expandPath(".") 并且也失败了。

于 2014-02-26T18:59:47.073 回答
1

您将'localUrl'设置为yes,这意味着Coldfusion将查看图像中的文件路径并尝试在硬盘驱动器上找到它们而不进行HTTP或HTTPS调用,因此它试图打开'pathToDisplayPhoto.cfm?image= #someImage#' 作为图像,但由于它不是 HTTP 请求,它不会处理 CFML。

如果将 loclUrl 设置为 No,则应该可以解决此问题。

cfdocument ref - 在参数列表中查找 localUrl。

于 2012-08-15T13:48:50.047 回答