2012-05-31 81 views
0

我似乎在操作CFC內的照片時遇到問題。我得到一個錯誤,說它在嘗試讀取圖像時遇到異常。所以這個問題很簡單,是否有任何操作CFC中的文件的問題,而不是CFM?CFC內的Cfimage

<cffunction name="imageResize" access="public" returntype="boolean"> 

    <cfargument name="filename"> 
    <cfset result = "true"> 

    <cfimage 
    action = "resize" 
    source = "#root#/documents/uploads/PHOTOS/#filename#" 
    width = "400px" 
    height = "" 
    destination = "#root#/documents/uploads/PHOTOS/thumbs/#filename#" 
    overwrite = "yes"></cfimage> 

    <cfreturn result> 
    </cffunction> 

感謝

+2

在責備CFC之前,您是否曾嘗試在CFM中運行相同的代碼,而不是上面的CFC? – Henry

回答

4

有與具有CFC內cfimage沒有問題。這是我一直在做的事情。

我懷疑你的問題是變量「root」在你的函數內部是未知的。你應該也可以var範圍你的結果變量,並指定你使用文件名變量的範圍。

+0

謝謝!在這種情況下,如果我想將調整大小的圖像放在拇指文件夾中,那麼使用「目標」的方式是否存在任何問題?我找不到多少解釋這個屬性給我。 – aceslowman

+0

@AustinSlominski確保'root'是你所期望的,因爲它不在參數範圍內,它現在可以被多個請求共享,這可能不是你想要的。 – Henry

1

我發現你的代碼有很多問題,並糾正它們,它工作正常。 這裏是問題。

  1. 函數名'imageResize'需要更改爲其他名稱,因爲您提供的函數名稱是現有的coldfusion函數。

  2. cfimage tage中的width屬性需要一個像420而不是420px的整數。

  3. 源文件& cfimage標籤中的目標屬性需要像'D:\ projects \ test'這樣的絕對路徑,而不是'/ test/images'。

僅供參考:您在代碼中提到的'root'變量應該可以在函數中訪問。

這裏是整改後的代碼。

<cffunction name="imageResize2" access="public" returntype="boolean"> 
<cfargument name="filename"> 
<cfset result = "true"> 

<cfimage 
action = "resize" 
source = "D:\Projects\Test\images\#filename#" 
width = "400" 
height = "" 
destination = "D:\Projects\Test\temp\#filename#" 
overwrite = "yes" /> 

<cfreturn result> 
</cffunction> 

是的,在cfc中處理文件/圖像沒有問題。上面的代碼可以在cfs和cfm中使用。