Почему два сервера ColdFusion 8 возвращают разные значения с одним и тем же кодом? - PullRequest
0 голосов
/ 16 января 2012

У меня есть фрагмент кода, который я использую, чтобы проверить правильность изображения, прежде чем пытаться его масштабировать и добавить в PDF.В основном:

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

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

У меня один и тот же файл изображения на обоих серверах, и когда я запускаю приведенный выше код на обоих серверах, один возвращает «ДА», другой возвращает «НЕТ» («НЕТ» правильно),Оба сервера работают под управлением ColdFusion 8 (версия 8,0,1,195765).Один, возвращающий «НЕТ», - Developer Edition в 64-разрядной версии Windows 7, другой - Standard Edition в 32-разрядной версии Windows 2003 SP2.Я не могу понять, как ОС или Edition повлияют на такой простой фрагмент кода, как этот.Что может быть причиной этого?

Спасибо.

Результаты теста кода изображения:

Developer Edition для Windows 7 (64-разрядная версия):

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

Standard Edition в 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 ]

1 голос
/ 17 января 2012

Из документации :

Используйте эту функцию, чтобы определить, является ли файл изображения действительным.Эта функция возвращает значение False, если формат файла изображения не поддерживается сервером, на котором развернут ColdFusion, или если путь к файлу изображения нулевой или недействительный.

Далее предлагается

Чтобы определить, какие форматы файлов изображений поддерживаются на сервере, на котором развернуто ColdFusion, используйте GetReadableImageFormats и GetWriteableImageFormats .

Я не могу понять, где вы сказали, какой сервер является правильным и неправильным, однако кажется, что проблема вызвана сервером, а не CF.

Проверьте результаты, которые вы получаете с помощью функций get * ImageFormats ипосмотрим, поможет ли это - хотя чтение jpgs, вероятно, является базовой линией ...

Другая вещь, которую нужно проверить, - это разрешения, под которыми работает CF на каждом сервере - если вы вручную копируете файл на сервер, у вас может быть файлправа доступа мешают.

0 голосов
/ 03 февраля 2012

Вы можете проверить, какая версия Java используется CF. Могут быть различия в версии, и у одного из них больше возможностей, чем у другого.

0 голосов
/ 17 января 2012

Я знаю, что это может показаться упрощенным, но если вы поменяете местами IsImageFile с FileExists, получите ли вы "да" в обоих случаях?

<cfdump var="#FileExists(imgPath)#" />
0 голосов
/ 16 января 2012

Можете ли вы прикрепить (или ссылку на) изображение здесь?Я проведу такой же тест на моих системах ... один Mac и другой Windows 2008.

...