2016-12-03 23 views
1

FileTransfer Cordovaプラグイン(https://github.com/apache/cordova-plugin-file-transfer)のアップロードメソッドを使用してファイルをアップロードしようとしています。最後に、プロジェクトのページに記載されている例をほぼコピーしましたが、成功していません。このメソッドは成功コールバック関数を起動しますが、ターゲットスクリプトはファイルもパラメータも受け取りません。私のコードは次のとおりです。Cordova FileTransferでファイルをアップロードできません

関数を呼び出す:

var fleNme = TOP_APP_DIR + "/config/config.json"; 

fileAPI.readFile(fleNme, function (data) { 
    console.log("File content: " + data); // just to meake sure the file exists and it contains some data 

    fileAPI.uploadFile("http://posttestserver.com/post.php", fleNme, { par1: "test", par2: "test2" }, null, function (r) { 
      console.log("Successful upload..."); 
      console.log(JSON.stringify(r)); 
    }); 
}); 

アップロード機能:私のコンソールで

fileAPI.uploadFile = function (url, filePath, params, progressFunc, successCallback, failCallback, FStype) { 
    if (typeof failCallback === "undefined" || failCallback === null) 
     failCallback = fileAPI.defaultErrorCallback; 

    // getFileEntry method is used for reading the file before call the upload method, so it's OK 
    fileAPI.getFileEntry(filePath, function (fileEntry) { 
     var fileURL = fileEntry.toURL(); 

     var options = new FileUploadOptions(); 
     options.fileKey = "file"; 
     options.fileName = fileURL.substr(fileURL.lastIndexOf('/') + 1); 
     options.mimeType = "text/plain"; 
     options.httpMethod = "POST"; 

     if(typeof params === "undefined" || params === null) 
      params = {}; 

     options.params = params; 

     var ft = new FileTransfer(); 

     ft.upload(fileURL, encodeURI(url), successCallback, failCallback, options); 
    }, failCallback,FStype,false); 
}; 

出力は次のとおりです。

ログposttestserver.comからです:

Time: Sat, 03 Dec 16 11:41:06 -0800 
Source ip: 31.30.45.209 

Headers (Some may be inserted by server) 
REQUEST_URI = /post.php 
QUERY_STRING = 
REQUEST_METHOD = POST 
GATEWAY_INTERFACE = CGI/1.1 
REMOTE_PORT = 48730 
REMOTE_ADDR = 31.30.45.209 
HTTP_ACCEPT_ENCODING = gzip 
HTTP_CONNECTION = close 
HTTP_HOST = posttestserver.com 
HTTP_USER_AGENT = Dalvik/1.6.0 (Linux; U; Android 4.4.2; SM-T320  Build/KOT49H) 
CONTENT_TYPE = multipart/form-data; boundary=+++++ 
UNIQUE_ID = WEMf0kBaMGUAAFmEWtgAAAAK 
REQUEST_TIME_FLOAT = 1480794066.2475 
REQUEST_TIME = 1480794066 

No Post Params. 
Empty post body. 

== Multipart File upload. == 
Received 0 file(s) 

IターゲットCordova CLI 6.1.1。私は一日中さまざまなアプローチを試みましたが、いつも同じ結果が得られました。 HTC 10、Samsung Galaxy Tab SM-T320、古いPrestigio携帯電話の3種類のAndroid搭載機でコードをデバッグしました。どのようなアイデアが間違っている?

+0

'options.chunkedMode = false'を追加して、それが役立つかどうかを確認してください。 –

+0

偉大な、それは動作します!ありがとう。あなたが答えとして書く場合は、私はそれをマークします。 – user3523426

+0

回答として追加されました。 :-)うまくいけばうれしいです。すぐに新しいプラグインのドロップを見つけてください - あなたはそれを試し、chunkedModeがtrueに設定された問題を解決するかどうかを知りたいかもしれません。 –

答えて

0

デフォルト設定のchunkedMode(これはtrue)に多くの問題があります。 options.chunckedMode = falseに切り替えると問題が解決します。

関連する問題