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);
};
출력은 다음과 같습니다
- 파일 내용 : { "버전": 9, "타임 스탬프": 1480793843086, "언어": "cs"........
- 업로드 성공 ...
- { "응답": " . nPost 본체 0 문자 길었다 \ http://www.posttestserver.com/data/2016/12/03/11.41.062096548295에서 포스트 변수 \에 nView를 ","응답 코드. "200"OBJECTID는 ":" ","bytesSent는 "posttestserver.com에서 522}
로그 인 :
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)
대상 Cordova CLI 6.1.1. 나는 하루 종일 다른 접근법을 시도했지만, 항상 같은 결과를 얻었습니다. HTC 10, 삼성 Galaxy Tab SM-T320 및 이전의 Prestigio 휴대 전화와 같은 3 가지 안드로이드 기기에서 코드를 디버깅했습니다. 동일한 결과를 보았습니다. 어떤 생각이 잘못된거야?
'options.chunkedMode = false'를 추가하여 도움이되는지 확인해보십시오. –
위대한 작품! 감사. 당신이 대답으로 쓰는 경우에, 나는 그것을 표시 할 것입니다. – user3523426
답변으로 추가되었습니다. :-) 다행스러워. 곧 새로운 플러그인 드롭을 찾아보십시오. chunkedMode를 true로 설정하여 문제를 해결하는지 확인해보십시오. –