2012-12-10 56 views
1

我知道這已被問到,但我似乎無法找到可行的解決方案。在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>所示:[空字符串。

我錯過了什麼。

謝謝。

菲爾

+1

刪除''並再次嘗試底部的''標籤。 – Travis

+0

絕對正確。食譜是錯誤的。 – SiriusPhil

+6

實際上,Cookbook條目沒有錯。它說你需要傳遞一個表單字段的名稱,而不是表單字段的值。你的cfinvoke做錯了。將value =「#form.fileUpload#」更改爲value =「form.fileUpload」 –

回答

0

我知道這是不是你的CFC的一部分,但你確保形式有ENCTYPE設置?

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

是的......無論如何。 – SiriusPhil

0

通過刪除cffile範圍,我能夠得到它的工作。