IsImageFile不像在cf8上那样在cf9上工作

时间:2012-09-06 17:11:58

标签: coldfusion coldfusion-9 coldfusion-8 url-encoding

我公司数据库中的许多图像都有非常规名称,例如“st.john's.jpg”。在cf8中,我在IsImageFile中使用了URLEncodedFormat(myimage)来检查这些图像(参见下面的代码)。它完美运行,直到我转到cf9。似乎cf9无法识别IsImageFile中的URLEncodedFormat文件。请告知我如何使用常规名称和非常规名称来检查cf9图像。

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

1 个答案:

答案 0 :(得分: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>