为什么两个ColdFusion 8服务器使用相同的代码返回不同的值?

时间:2012-01-16 17:05:06

标签: image coldfusion coldfusion-8

我有一段代码用于在尝试缩放图像并将其添加到PDF之前验证图像是否有效。基本上是:

<cfset imgPath = "C:\uploads\images\myimage.jpg" />

<cfdump var="#IsImageFile(imgPath)#" />

我在两台服务器上都有相同的图像文件,当我在两台服务器上运行上面的代码时,一个返回“YES”,另一个返回“NO”(“NO”是正确的)。两台服务器都运行ColdFusion 8(版本8,0,1,195765)。返回“NO”的是Windows 7 64位上的Developer Edition,另一个是Windows 2003 SP2 32位上的Standard Edition。我无法看到操作系统或版本如何对像这样的简单代码产生影响。可能导致这种情况的原因是什么?

谢谢。

图像测试代码的结果:

Windows 7(64位)上的Developer Edition:

GetReadableImageFormats: BMP,GIF,JFIF,JPEG,JPEG 2000,JPEG-LOSSLESS,JPEG-LS,JPEG2000,JPG,PNG,PNM,RAW,TIF,TIFF,WBMP 

GetWriteableImageFormats: BMP,GIF,JFIF,JPEG,JPEG 2000,JPEG-LOSSLESS,JPEG-LS,JPEG2000,JPG,PNG,PNM,RAW,TIF,TIFF,WBMP 

FileExists: YES 

IsImageFile: NO

Windows 2003(32位)上的标准版:

GetReadableImageFormats: BMP,GIF,JFIF,JPEG,JPEG 2000,JPEG-LOSSLESS,JPEG-LS,JPEG2000,JPG,PNG,PNM,RAW,TIF,TIFF,WBMP 

GetWriteableImageFormats: BMP,GIF,JFIF,JPEG,JPEG 2000,JPEG-LOSSLESS,JPEG-LS,JPEG2000,JPG,PNG,PNM,RAW,TIF,TIFF,WBMP 

FileExists: YES 

IsImageFile: YES 

4 个答案:

答案 0 :(得分:1)

From the documentation

  

使用此功能确定图像文件是否有效。这个   如果图像文件格式不是,则函数返回False值   由部署ColdFusion的服务器支持,或者是否支持   图像文件的路径名为null或无效。

继续建议

  

要确定部署ColdFusion的服务器支持哪种图像文件格式,请使用GetReadableImageFormatsGetWriteableImageFormats

我无法看到你说哪个服务器是对是错,但似乎问题是由服务器而不是CF引起的。

检查你从get * ImageFormats函数得到的结果,看看是否有帮助 - 尽管读取jpgs可能是基线......

要检查的另一件事是CF在每台服务器上运行的权限 - 如果您手动将文件复制到服务器,则可能会影响文件访问权限。

答案 1 :(得分:0)

你可以在这里附上(或链接)图像吗?我将在我的系统上进行相同的测试......一台Mac和另一台Windows 2008。

答案 2 :(得分:0)

我知道这可能听起来很简单但是如果你把IsImageFile与FileExists交换,那么在这两种情况下你都会得到“是”吗?

<cfdump var="#FileExists(imgPath)#" />

答案 3 :(得分:0)

您可以查看CF使用的Java版本。可能存在版本差异,其中一个功能比另一个功能更多。