2012-07-01 23 views
2

我剛剛從科爾多瓦(PhoneGap)1.5升級到1.9今天突然我的FileTransfer params停止發佈。我可以告訴,因爲我有服務器端調試$ _POST參數,它們現在是空白的。以下是正在運行的代碼:PhoneGap FileTransfer.upload params不再發布

var options = new FileUploadOptions(); 
    options.fileKey="file"; 
    options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1); 
    options.mimeType="image/jpeg"; 
    options.chunkedMode=false; 

    var params = new Object(); 
    params.client_token = "This will not make it across, sadly..."; 

    options.params = params; 

    var ft = new FileTransfer(); 
    rs = ft.upload(imageURI, "http://www.mysite.com/api/uploadimage", 
     function() { alert('Yay!'); }, 
     function() { alert('Fail happens..'); }, options, true); 

這是否發生過其他人?也許有一個新的設置必須設置?

UPDATE:

只是爲了確保它不是笨造成服務器端的問題,我現在有上面的代碼張貼到echo.php,它只是做「打印的var_dump($ _ REQUEST);」 。仍然沒有結果。我能夠作爲$ _GET參數欺騙並將URL上的客戶端令牌拋出,但由於客戶端發生更改,因此破解服務器端似乎是一種恥辱。

+1

上面的代碼工作正常,我在科爾多瓦1.9和服務器的NodeJS,其中'client_token'是表單數據在POST請求的一部分。 – dhaval

+0

這是離奇的。感謝您的檢查。由於我只在一個地方使用代碼,因此我將它切換到GET。我想我會把http://www.charlesproxy.com/連接到我的手機並調試實際正在傳輸的內容。 – Anthony

+0

此代碼也適用於我;) –

回答

4

我與iOS Cordova 1.9有同樣的問題。我發現並修復了框架代碼中的錯誤,您可以下載我的Cordova分支並使用新修補的/dist/Cordova-1.9.0.dmg:https://github.com/eschultz/incubator-cordova-ios/

快速瀏覽Android Cordova 1.9代碼看起來不錯。我向Apache提交了更改,以在下一版本中包含修復程序。

希望這會有所幫助。

+0

太棒了,謝謝Eric!我很感謝你確認至少我沒有瘋狂。 :)我已經黑了我的API使用GET參數,但我會留意下一個Cordova的修復。你搖滾! – Anthony

+0

@Anthony我有升級完全相同的問題。很好,埃裏克。這是我前幾天打開的JIRA:https://issues.apache.org/jira/browse/CB-1015 – mckamey

+0

我在Cordova 2.0看到類似的錯誤行爲。不知道這是一個新的bug還是同一個表面重鋪,但FileTransfer在某些情況下似乎被破壞(發回負文件大小等)。 –