2011-08-05 29 views
1

我試圖做到這一點ColdFusion的CFSET和可變範圍

<cfset noncooperativevariable = #serverfile#> 

和我沒有定義錯誤serverfile。當我嘗試使用正確的變量範圍

<cfset noncooperativevariable = #CFFILE.serverfile#> 

返回錯誤。

您試圖取消引用類java.lang.String的標量變量作爲包含成員的結構。

編輯:

<cffile action="upload" filefield="fileUpload" destination="#destination#" nameConflict="makeUnique" result="upload"> 
<cfset noncooperativevariable = #fileUpload.serverfile#> 
+0

你是否在CFFILE上傳後直接執行此操作? –

+0

是的,我添加了一些代碼來更好地瞭解我在做什麼。 – John

+2

這是一個奇怪的錯誤,我想也許是一條紅色的鯡魚。在你的'cfset'中,你不想要「#upload.serverfile#」嗎?你有'upload'作爲'result ='值。 – ale

回答

3

當使用cffile標籤,結果被默認爲CFFILE結構中的變量範圍。因此,如果您上傳的用下面的代碼文件:

<cffile action="upload" filefield="fileUpload" destination="#destination#" nameConflict="makeUnique" /> 

的結果是通過在你的變量範圍CFFILE結構進行訪問。

<cfset cooperativeVariable = cffile.serverfile /> 

在摘要中發佈,您使用的是「結果」屬性,它將使你的CFFILE導致命名的上傳代替CFFILE的結構,所以你會:文件名的形式如下引用獲取文件名如下:

<cfset cooperativeVariable = upload.serverfile /> 
+0

我upvoted你的答案,但只是因爲你指出了結果屬性問題,默認範圍IS cffile,而不是文件。 –

+0

..和'文件'已被棄用一段時間。 – Leigh

+0

blast!I '去過 使用cf8的時間太長了8]謝謝你們 –