2012-05-31 3 views
0

У меня, похоже, проблема с фотографиями изнутри моего CFC. Я получаю сообщение об ошибке, которое говорит о том, что при попытке прочитать изображение возникло исключение. Таким образом, вопрос довольно прост, есть ли проблемы с управлением файлами внутри CFC, а не с CFM?Cfimage внутри CFC

<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

Вы пробовали использовать тот же код в CFM, а не в CFC выше, прежде чем обвинять CFC? – Henry

ответ

4

Там нет никаких проблем с наличием cfimage внутри ск. Это то, что я делаю все время.

Я подозреваю, что проблема заключается в том, что переменная «root» неизвестна внутри вашей функции. Вероятно, вы также должны будете обладать переменной переменной результата и указать область применения переменной.

+0

Спасибо! В этом случае возникает проблема с тем, как я использую «пункт назначения», если я хочу, чтобы измененное изображение было помещено в папку с большими пальцами? Я не мог найти много, что объясняло мне этот атрибут. – aceslowman

+0

@AustinSlominski убедитесь, что 'root' - это то, что вы ожидаете от него, поскольку оно не находится в области аргументов, и теперь оно может быть разделено несколькими запросами, и это может быть не то, что вам нужно. – Henry

1

Я нашел немало проблем с вашим кодом и исправил их, и он работает нормально. Вот и проблемы.

  1. Имя функции «imageResize» должно быть изменено каким-либо другим именем, так как имя функции, предоставленная Вами является существующая функция ColdFusion.

  2. Атрибут width в cfimage tage должен иметь целое число, например 420, не 420 пикселей.

  3. Исходный код & атрибутов назначения в теге cfimage должен иметь абсолютный путь, такой как «D: \ projects \ test» не нравится «/ test/images».

FYI: В функции должна быть доступна переменная «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.