我知道這已被問到,但我似乎無法找到可行的解決方案。在CFC惡夢中使用CFFILE
我有一個使用以下將數據傳遞給一個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一個CFM頁,我也跟着在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/neotmp5003883285207133 802.tmp不包含文件。「
如果我按照指示在StackExchange (CFFILE - Uploading a file using a component)
<cffile action="upload"
filefield="fileUpload"
destination="#TempMediaPath#"
nameconflict="makeunique">
它通過沒有錯誤,但一個<CFDUMP>
所示:[空字符串。
我錯過了什麼。
謝謝。
菲爾
刪除''並再次嘗試底部的''標籤。 –
Travis
絕對正確。食譜是錯誤的。 – SiriusPhil
實際上,Cookbook條目沒有錯。它說你需要傳遞一個表單字段的名稱,而不是表單字段的值。你的cfinvoke做錯了。將value =「#form.fileUpload#」更改爲value =「form.fileUpload」 –