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);
};
出力は次のとおりです。
- ファイル
- 成功したアップロード...
- {"レスポンス": "成功したダンプされた0ポスト変数\ http://www.posttestserver.com/data/2016/12/03/11.41.062096548295 \ nPost本体でのnViewそれは0文字長かった "" にResponseCode。。 ":200、" OBJECTID ":"」、 "bytesSent":522}
ログ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搭載機でコードをデバッグしました。どのようなアイデアが間違っている?
'options.chunkedMode = false'を追加して、それが役立つかどうかを確認してください。 –
偉大な、それは動作します!ありがとう。あなたが答えとして書く場合は、私はそれをマークします。 – user3523426
回答として追加されました。 :-)うまくいけばうれしいです。すぐに新しいプラグインのドロップを見つけてください - あなたはそれを試し、chunkedModeがtrueに設定された問題を解決するかどうかを知りたいかもしれません。 –