2012-09-06 2 views
1

회사 데이터베이스의 많은 이미지에 "john's.jpg"와 같은 비 전통적인 이름이 있습니다. cf8에서 IsImageFile 내에 URLEncodedFormat (myimage)를 사용하여 이러한 이미지를 확인했습니다 (아래 코드 참조). cf9로 옮길 때까지 완벽하게 작동했습니다. cf9가 IsImageFile의 URLEncodedFormat 파일을 인식하지 못하는 것 같습니다. 평범한 이름과 비 전통적인 이름으로 cf9 체크 이미지를 만들 수있는 방법을 알려주십시오.IsImageFile은 cf8에서와 같이 cf9에서 작동하지 않습니다.

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

당신이 두 버전에 동일한 myimage을 값을 확인하고 가정, 그것은 버그 같은 소리 - 당신이 그것을 제기가있는 [ Adobe 버그 추적기] (https://bugbase.adobe.com/)? –

+2

정확한 오류는 무엇입니까? 파일 이름이 아닐 수도 있습니다. http://stackoverflow.com/questions/11434403/coldfusion-isimagefile-fails-for-jpg-file-wtf – ale

+0

Adobe 버그 추적기에서 질문을 제기했습니다. 누군가가 도움이되기를 바랍니다. 나는 그 오류를 출력 할 수 있었으면 좋겠다. 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>