1

我公司数据库中的许多图像都有非常规名称,例如“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>
4

1 回答 1

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>
于 2012-09-18T20:35:07.620 回答