Cordova Android:使用官方Cordova插件文件传输上传文件时请求为空
尝试使用Apache at提供的官方Cordova Android:使用官方Cordova插件文件传输上传文件时请求为空,android,cordova,cordova-plugins,Android,Cordova,Cordova Plugins,尝试使用Apache at提供的官方cordova插件文件传输将文件上载到服务器 创建了一个空的cordova项目,设置了文件选择器()和文件上传器,并运行了以下代码: function servUpload(fileURL) { var win = function (r) { console.log("Code = " + r.responseCode); console.log("Response = " + r.response);
cordova插件文件传输将文件上载到服务器
创建了一个空的cordova项目,设置了文件选择器()和文件上传器,并运行了以下代码:
function servUpload(fileURL) {
var win = function (r) {
console.log("Code = " + r.responseCode);
console.log("Response = " + r.response);
console.log("Sent = " + r.bytesSent);
}
var fail = function (error) {
alert("An error has occurred: Code = " + error.code);
console.log("upload error source " + error.source);
console.log("upload error target " + error.target);
}
var options = new FileUploadOptions();
options.fileKey = "upfile";
options.fileName = "test.jpg";
options.mimeType = "image/jpeg";
options.httpMethod = "POST";
var params = {};
params.value1 = "test";
params.value2 = "param";
options.params = params;
var ft = new FileTransfer();
ft.upload(fileURL, encodeURI("http://example.com/test.php"), win, fail, options);
}
function getFile() {
fileChooser.open(function(uri){
//alert(uri);
//document.getElementById('img1').setAttribute('src', uri);
console.log(uri);
servUpload(uri);
}, function(err){
console.log(err);
});
}
getFile();
(注意我设置的post参数)
我的test.php
包含以下内容(只需回显所有文件、post和get变量)
不过,一个简单的post请求仍然有效:
var http = new XMLHttpRequest();
var url = "http://example.com/test.php";
var params = "lorem=ipsum&name=binny";
http.open("POST", url, true);
//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
console.log(http.responseText);
}
}
http.send(params);
这将返回:
Array
(
)
Array
(
[lorem] => ipsum
[name] => binny
)
Array
(
)
我不知道我能做些什么,我已经确保了文件选择器实际工作(我已经用一个图像文件进行了测试,并且测试了我是否可以设置一个
元素,将图像作为其源)
有什么想法吗?提前谢谢。我想出来了,科尔多瓦那边没有问题,我的LEMP设置不正确。科尔多瓦代码工作得很好
var http = new XMLHttpRequest();
var url = "http://example.com/test.php";
var params = "lorem=ipsum&name=binny";
http.open("POST", url, true);
//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
console.log(http.responseText);
}
}
http.send(params);
Array
(
)
Array
(
[lorem] => ipsum
[name] => binny
)
Array
(
)