0

CFC 内から写真を操作する際に問題が発生しているようです。画像の読み取り中に例外が発生したというエラーが表示されます。質問は非常に簡単です。CFM ではなく、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>

ありがとう

4

2 に答える 2

4

CFC 内に cfimage を配置しても問題はありません。それは私がいつもしていることです。

あなたが抱えている問題は、変数「ルート」が関数内で不明であることだと思います。おそらく、結果変数を var スコープし、ファイル名変数の使用時にスコープを指定する必要があります。

于 2012-05-31T18:07:50.780 に答える
1

私はあなたのコードにかなりの数の問題を見つけ、それらを修正しました、そしてそれはうまく働いています。ここに問題があります。

  1. 関数名'imageResize'は、既存のコールドフュージョン関数であるため、別の名前に変更する必要があります。

  2. cfimage tageのwidth属性は、420pxではなく420のような整数である必要があります。

  3. cfimageタグのソース属性と宛先属性には、「/ test / images」ではなく、「D:\ projects\test」のような絶対パスが必要です。

参考:コードで言及した「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の両方で機能します。

于 2012-07-13T11:15:34.907 に答える