我正在动态地编写PDF,并为eTicketing目的在文档上创建QR代码。
我将cfdocument localurl=yes设置为包含一个不同的映像,这很好,但是由于我使用API调用来获取qrCode的二进制文件,使用cfimage显示图像,所以它只显示一个红色的X。
<cfdocument format="PDF" overwrite="Yes" localUrl="yes" pageType = "letter">
<body>
<cfoutput>
<section id="header">
<img src="file:///#ExpandPath('images/header.png')#"/>
<cfimage action="writeToBrowser" source="#rc.qrCode#" />
</cfoutput>
</body>
</html>
</cfdocument>源变量rc.qrCode是一个二进制响应,在我放置在cfdocument中之前,它生成一个像http://mysite/CFFileServlet/_cf_image/_cfimg-7945382145198648283.PNG这样的url作为图像源。
我确信这与localurl和file:///,有关,我只是一个不了解原因的人。
发布于 2013-06-29 03:24:28
不需要使用物理路径,而需要使用页的相对路径。例如,如果您在根文件夹的index.cfm中编码,在图像文件夹中编码
请注意,它不应该以根路径开始,而应该相对于您的文件。
更新
将文件内部写入硬盘到它的临时位置( C:\ColdFusion10\cfusion\tmpCache\CFFileServlet),并在将其呈现给浏览器时使用相对路径(如"/CFFileServlet/_cf_image/_cfimg1592404668342998556.PNG",)--您可以说ColdFusion内部将CFFileServlet目录映射到所有coldfusion,但注意前面的正斜杠,这使localurl=true出现问题。因为localurl=true要么需要物理路径,要么需要与文档的相对路径。
好主意是代替写浏览器,你可以写相同的图像到硬盘驱动器在您的位置,并给出物理路径的img标签。我不这样做,因为当您使用writetobrowser属性时,ColdFusion在内部执行相同的操作,因此不会出现任何性能问题:)
https://stackoverflow.com/questions/17372320
复制相似问题