在CFC梦魇中使用CFFILE

时间:2012-12-10 14:28:21

标签: coldfusion cffile

我知道有人问过,但我似乎无法找到有效的解决方案。

我有一个CFM页面,它使用以下内容将数据传递给CFC

<cfinvoke 
component="common.cfcs.geotrails"
method="UpdateGeoTrail">
<cfinvokeargument name="title" value="#form.title#"/>
<cfinvokeargument name="Description_short" value="#form.Description_short#"/>
<cfinvokeargument name="Description" value="#form.description#"/>
<cfinvokeargument name="GTID" value="#form.gtid#"/>
<cfinvokeargument name="CatID" value="#form.catid#"/>
<cfif structKeyExists(form,"fileUpload") and len(form.fileUpload)>
<cfinvokeargument name="fileUpload" value="#form.fileUpload#"/>
</cfif>
</cfinvoke>

在接收数据的CFC中,我按照Adobe Cookbook

的指示进行操作
<cffunction name="UpdateGeoTrail" access="public" returntype="void">
<cfargument name="title" type="string" required="yes">
<cfargument name="Description_short" type="string" required="yes">
<cfargument name="Description" type="string" required="yes">
<cfargument name="GTID" type="numeric" required="yes">
<cfargument name="CatID" type="numeric" required="yes">
<cfargument name="fileUpload" type="string" required="no">

<!--- IF THE IMAGE HAS BEEN UPLOADED --->
<!--- set the full path to the images folder --->
<cfif isdefined("arguments.fileUpload") AND len(arguments.fileUpload)>
<cfset tempmediapath = "#expandPath('/')#media/gtimages/temp/">
<cfset mediapath = "#expandPath('/')#media/gtimages/">

<cfset var cffile = "">
<cffile action="upload"
filefield="#ARGUMENTS.fileUpload#"
destination="#TempMediaPath#"
nameconflict="makeunique">
...

但我仍然收到可怕的错误信息......

“表格字段/data/disk01/opt/coldfusion9/runtime/servers/coldfusion/SERVER-INF/temp/wwwroot-tmp/neotmp5003883285207133802.tmp不包含文件。”

如果我按照StackExchange上的说明进行操作 (CFFILE - Uploading a file using a component

<cffile action="upload"
filefield="fileUpload"
destination="#TempMediaPath#"
nameconflict="makeunique">

传递没有错误,但是<CFDUMP>显示:[空字符串]。

我错过了什么。

感谢。

菲尔

2 个答案:

答案 0 :(得分:0)

我知道它不是你的cfc的一部分,但是你确定表单是否设置了enctype?

<cfform action="/upload.cfm" enctype="multipart/form-data">

答案 1 :(得分:0)

通过删除cffile范围,我能够让它工作。