0

我似乎在从我的 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>

谢谢

4

2 回答 2

4

在 cfc 中包含 cfimage 没有问题。这是我一直在做的事情。

我怀疑您遇到的问题是您的函数中的变量“root”是未知的。您可能还应该 var 范围您的结果变量并指定您使用文件名变量的范围。

于 2012-05-31T18:07:50.780 回答
1

我发现您的代码存在很多问题,并已对其进行了纠正,并且运行良好。以下是问题。

  1. 函数名'imageResize'需要改成其他名字,因为你提供的函数名是已有的coldfusion函数。

  2. cfimage 标记中的宽度属性需要有一个整数,如 420 而不是 420px。

  3. cfimage 标记中的源和目标属性需要具有像“D:\projects\test”这样的绝对路径,而不是像“/test/images”那样。

仅供参考:您在代码中提到的“根”变量应该可以在函数中访问。

这是修正后的代码。

<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 中都有效。

于 2012-07-13T11:15:34.907 回答