2012-09-06 15 views
1

我公司數據庫中的很多圖像都具有非常規名稱,如「st。john's.jpg」。在cf8中,我使用了IsImageFile中的URLEncodedFormat(myimage)來檢查這些圖像(請參閱下面的代碼)。它工作完美,直到我轉移到cf9。看起來像cf9不承認IsImageFile內的URLEncodedFormat文件。請告訴我如何使用常規名稱和非常規名稱制作cf9檢查圖像。IsImageFile無法在cf9上工作,就像它在cf8上所做的那樣

<cfif IsImageFile("http://www.mywebsite.com/images/#URLEncodedFormat(myimage)#")> 
    <cfset imageURL = "/images/#URLEncodedFormat(myimage)#"> 
<cfelse> 
    <cfset imageURL = "/images/noimage.jpg"> 
</cfif> 
+0

假設你在兩個版本檢查完全相同的MYIMAGE值,這聽起來像一個錯誤 - 有你提到它的[ Adobe bug跟蹤器](https://bugbase.adobe.com/)? –

+2

什麼是確切的錯誤。也許它不是文件名。 http://stackoverflow.com/questions/11434403/coldfusion-isimagefile-fails-for-jpg-file-wtf – ale

+0

我在Adobe bug跟蹤器中提出了問題。希望有人會幫助。我希望我能輸出錯誤。似乎cfif有條件只返回false,並將imageURL設置爲「/images/noimage.jpg」 – Dmitry

回答

0

你寫的if語句,使我相信,你是包括「MYIMAGE」變量中的文件擴展名的方式。如果是這種情況,那麼就是「。」 (期間)轉換爲「%2E」。

如果這是正確的,我建議如下解決:

<cfscript> 
    basePath = "http://www.mywebsite.com"; 
    image  = "freds's image.jpg"; 
    name  = URLEncodedFormat(listFirst(image, ".")); 
    extension = listLast(image, "."); 
    imageUrl = "/images/#name#.#extension#"; 

    if (! isImageFile(basePath & imageUrl)) { 
    imageUrl = "/images/noimage.jpg"; 
    } 

</cfscript> 
相關問題