Изображение внутри CFC
Кажется, у меня проблема с манипулированием фотографиями из моего CFC. Я получаю сообщение об ошибке, в котором говорится, что возникла исключительная ситуация при попытке прочитать изображение. Таким образом, вопрос довольно прост, есть ли проблемы с манипулированием файлами изнутри CFC, а не CFM?
<cffunction name="imageResize" access="public" returntype="boolean">
<cfargument name="filename">
<cfset result = "true">
<cfimage
action = "resize"
source = "#root#/documents/uploads/PHOTOS/#filename#"
width = "400px"
height = ""
destination = "#root#/documents/uploads/PHOTOS/thumbs/#filename#"
overwrite = "yes"></cfimage>
<cfreturn result>
</cffunction>
Спасибо
2 ответа
Нет проблем с наличием cfimage внутри cfc. Это то, что я делаю все время.
Я подозреваю, что проблема у вас заключается в том, что переменная "root" неизвестна внутри вашей функции. Вы, вероятно, также должны варьировать область видимости вашей переменной результата и указывать область применения переменной имени файла.
Я обнаружил довольно много проблем с вашим кодом и исправил их, и он работает нормально. Вот проблемы.
Имя функции 'imageResize' необходимо изменить на какое-то другое имя, поскольку предоставленное вами имя функции является существующей функцией Coldfusion.
Атрибут width в теге cfimage должен иметь целое число, например 420, а не 420px.
Атрибуты источника и назначения в теге cfimage должны иметь абсолютный путь, например "D:\projects\test", а не "/ test / images".
К вашему сведению: переменная 'root', о которой вы упоминали в своем коде, должна быть доступна в функции.
Вот исправленный код.
<cffunction name="imageResize2" access="public" returntype="boolean">
<cfargument name="filename">
<cfset result = "true">
<cfimage
action = "resize"
source = "D:\Projects\Test\images\#filename#"
width = "400"
height = ""
destination = "D:\Projects\Test\temp\#filename#"
overwrite = "yes" />
<cfreturn result>
</cffunction>
Да, нет проблем в манипулировании файлами / изображениями в cfc. Приведенный выше код работает как в cfs, так и в cfm.