2013-06-28 32 views
1

我動態寫一個PDF,並正在創建的電子票務的目的文檔上的QR碼cfimage在cfdocument

設置我的cfdocument localurl = yes以包含不同的圖像,其工作正常,但由於我使用的是API調用來獲取的QR碼,用的到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裏面,它會產生這樣一個url http://mysite/CFFileServlet/_cf_image/_cfimg-7945382145198648283.PNG作爲圖像源

我確定這與localurl和file:/ /有關,我只是一個不知道爲什麼

回答

0

不需要使用物理路徑,而是使用相對路徑到您的頁面。 例如 如果你的代碼的根文件夾和圖像的index.cfm內的圖像文件夾

嘗試< IMG SRC =「圖像/ header.png」>,請注意,它不應該,而相對於你的文件根路徑開始。

UPDATE

writetoBrowser內部文件寫入硬盤驅動器,它的臨時位置(局部,C:\ ColdFusion10 \ cfusion \ tmpCache \ CFFileServlet),而它渲染到瀏覽器,它使用相對路徑,如「/ CFFileServlet /_cf_image/_cfimg1592404668342998556.PNG「,你可以說ColdFusion在內部映射CFFileServlet目錄與所有的ColdFusion站點,但注意前導斜槓,這使localurl = true的問題。由於localurl = true需要物理路徑或文檔的相對路徑。

好主意是不是writetobrowser你可以寫相同的圖像到您的所在地硬盤並給予img標籤的物理路徑。我不知道這會有因爲ColdFusion的內部在做同樣的事情,當你正在使用writetobrowser屬性:)任何性能問題

+0

問題心不是與圖像/ header.png,其使用的cfimage標籤轉換二進制圖像,在CfFileservlet上創建一個臨時文件 –

+0

對不起,我誤解了你的問題。我已經更新了我的答案。 –