2015-03-31 47 views
3

我使用CFM2WDDX轉換在CF11的數組,但我收到此錯誤:CFML2WDDX錯誤的ColdFusion 11

coldfusion.tagext.validation.WddxValidator$InvalidWddxPacketException: Invalid WDDX packet..

我使用這個代碼在這裏:

getFileList.cfm

<cfsetting enablecfoutputonly="Yes"> 
<cfset thisdir = ExpandPath(".\")> 
<cfdirectory directory="#thisdir#" action="LIST" name="imagefiles" recurse="No"> 
<cfscript> 
// get .gif|.jpg|.png files from the cfdirectory query... 
numRows = imagefiles.recordcount; 
imageFileArray = ArrayNew(1); 
for (row = 1; row LTE numRows; row++) { 
    if (refindnocase("(.gif|.jpg|.png)",imagefiles.name[row]) neq 0) { 
     ArrayAppend(imageFileArray, imagefiles.name[row]); 
    }  
} 
</cfscript> 
<cfwddx action="cfml2wddx" input=#imageFileArray# output="wddxText"> 
<cfoutput>#wddxText#</cfoutput> 

正如你所看到的代碼創建一個圖像名稱的數組,然後我通過cfhttp訪問做我所需要的用它。我有一個相同的確切的代碼與CF9服務器上的相同的確切目錄內容和正常工作,但在CF11我得到格式錯誤。莫名其妙地改變了CF11的功能?

這是我使用訪問上面的代碼的代碼:

<cfhttp url="http://example.com/images/ClientLogos/getFileList.cfm" method="GET" timeout="10" throwonerror="Yes"> 
    <cfwddx action="WDDX2CFML" input="#trim(cfhttp.filecontent)#" output="imageArray" validate="true"> 
    <cfreturn imageArray> 

getFileList.cfm與圖像相同的目錄,因此執行本地服務器在正在從呼籲。 (這就是爲什麼我認爲CF11可能是問題)從CF9輸出的

部分:

enter image description here

而且從CF11的輸出部分:

enter image description here

CFHTTP。來自CF 11的標題:

HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Server: Microsoft-IIS/8.0 X-Powered-By: ASP.NET Access-Control-Allow-Origin: * Date: Tue, 31 Mar 2015 18:50:35 GMT Connection: close Content-Length: 10807 

CFHTTP.Header從CF 9:

HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8 Vary: Accept-Encoding Server: Microsoft-IIS/7.5 X-Powered-By: ASP.NET Date: Tue, 31 Mar 2015 18:51:20 GMT Connection: close 

+0

https://bugbase.adobe.com/ – Henry 2015-03-31 17:41:34

+0

@Henry你是說我應該添加到bugbase或搜索它從類似的問題? – Geo 2015-03-31 18:04:34

+0

如果您只是瀏覽到您的'getFileList.cfm'頁面,它是否顯示WDDX格式的數據?我只是在本地的CF9和CF11服務器上做了一個快速測試。兩者都按預期工作。但是我沒有執行'cfhttp'部分。我剛剛瀏覽了我的測試頁。 – 2015-03-31 18:25:31

回答

0

我不知道是什麼原因造成這種行爲,但我發現了一箇中間地帶現在。我不是通過cfhttp調用getFileList.cfm,而是直接在我的函數內移動getFileList.cfm中的代碼,並且一切正常。開始使用該文件的原因是允許我在不需要/不再使用的其他服務器上訪問外部映像回購。無論哪種方式,這可能實際上是一個CF11的bug,所以我們將在未來看到...

+0

生成的WDDX字符串有什麼區別? – 2015-03-31 20:57:51

+0

@JamesAMohler根本沒有! – Geo 2015-04-01 00:17:29

+0

(編輯)@Geo - (同意刪除cfhttp更有意義,因爲它不再需要,但出於好奇......)你檢查它的性格和*一切*是相同的,包括空白? – Leigh 2015-04-01 19:35:31