我正在尝试将文件从Android手机上传到网络服务器。 我正在使用ourcodeworld.Filebrowser.filePicker插件来选择/选择文件。 我可以选择文件但不上传
这是我到目前为止编写的代码。
function choose(){
window.OurCodeWorld.Filebrowser.filePicker.single({
success: function(data){
if(!data.length){
alert('No file selected');
return;
}
alert(data);
var fileURI = data;
servers = 'http://www.sample.com/mobile_app/upload.php';
var server = servers;
if (server) {
var options = new FileUploadOptions();
options.fileKey="fileUpload";
options.fileName = fileURI.substr(fileURI.lastIndexOf('/') + 1);
options.mimeType = "text/plain";
options.chunkedMode = false;
options.headers = {
Connection: "close"
};
var params = new Object();
params.uid = uid;
options.params = params;
var ft = new FileTransfer();
ft.upload(fileURI, server, win, fail, options);
ft.onprogress = function(progressEvent) {
if (progressEvent.lengthComputable) {
var perc = Math.round((progressEvent.loaded / progressEvent.total) * 100);
alert(perc);
$("#prog2").show();
document.getElementById('prog2').innerHTML ='<h4>Uploading :'+perc+'%</h4>';
} else {
if(statusDom.innerHTML == "") {
statusDom.innerHTML = "Loading";
} else {
statusDom.innerHTML += ".";
}
}
};
}
},
error: function(err){
alert(err);
}
});
}
数据即将到来alert(data);
,我也可以确认代码工作到if (server) {
。
根据我在此行的调试,它没有显示任何内容var options = new FileUploadOptions();
我可以确认cordova.js正确加载。
任何建议我做错了什么?
我正在模拟器上测试它。
编辑:文件从mycodeworld插件返回。
// ["file:///storage/emulated/0/360/security/file.txt"]
编辑2: 我正在使用此插件https://github.com/ourcodeworld/cordova-ourcodeworld-filebrowser
在示例代码中,我可以看到这一点。
// Array with filepaths
// ["file:///storage/emulated/0/360/security/file.txt", "file:///storage/emulated/0/360/security/another-file.txt"]
所以,看起来插件正在返回数组数据。我认为问题在这里。