文件上传使用cordova插件文件传输不适用于Android,仅适用于iOS
有人知道可能是什么问题吗?在过去的几周里,我一直试图弄明白为什么我的代码只能在iOS上运行,而不能在Android设备上运行。任何想法都将受到高度赞赏,因为我已经没有选择了 在android设备上显示发送文件,但在服务器上我没有收到任何信息(也没有图片,也没有其他参数)。另一方面,在iOS上,一切正常,服务器也正常 我的代码: home.html: 我用两种方法检查了错误: 案例1: 我上传的代码中有2个警报: A.成功情况下的消息:警报(“图像发送:“+this.imageURL”); B错误消息:警报(“err:+JSON.stringify(err)) 在我的例子中,我注意到只有第一条消息出现,即 代码执行正确 案例2: 我已通过电缆将手机连接到笔记本电脑。 要启动应用程序,我在“Node.js命令提示符”中键入了命令“ionic run” 安卓”。 我已经打开了Chrome浏览器并在地址栏中键入了内容 "chrome://inspect/#devices". 然后为我的应用选择“检查选项”,然后 弹出控制台。控制台没有显示任何错误。 这是测试它的正确方法,还是我应该尝试不同的方法 我打印了“ft.upload”成功时收到的对象“data” 功能。结果是:文件上传使用cordova插件文件传输不适用于Android,仅适用于iOS,android,cordova,ionic2,Android,Cordova,Ionic2,有人知道可能是什么问题吗?在过去的几周里,我一直试图弄明白为什么我的代码只能在iOS上运行,而不能在Android设备上运行。任何想法都将受到高度赞赏,因为我已经没有选择了 在android设备上显示发送文件,但在服务器上我没有收到任何信息(也没有图片,也没有其他参数)。另一方面,在iOS上,一切正常,服务器也正常 我的代码: home.html: 我用两种方法检查了错误: 案例1: 我上传的代码中有2个警报: A.成功情况下的消息:警报(“图像发送:“+this.imageURL”); B错误
data.response=
data.responseCode=200
data.bytesSent=411240
对我来说,这意味着信息被发送到服务器
还有一件事:
-我运行了不同类型的测试:向两台服务器发送信息
使用HTTPS和HTTP
-我尝试在另一个测试中添加trustAllHosts=true
trustAllHosts=false
每次都会出现同样的问题:在iOS上工作,但在android上失败请尝试在配置中设置
chunkedMode
false
var options = {
chunkedMode: false,
fileKey: 'file',
fileName: 'filename.jpg',
params:{operatiune:'uploadpoza'}
试试这个:
var onUploadSuccess = function (r) {
clearCache();
alert(JSON.stringify(r));
}
var onUploadFailed = function (error) {
alert(JSON.stringify(r));
}
var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = imageURI.substr(imageURI.lastIndexOf('/') + 1);
options.mimeType = "image/jpeg";
var params = new Object();
params.action = "some value";//=== if u want to send some other parameters
options.params = params;
options.chunkedMode = false;
var ft = new FileTransfer();
ft.upload(imageURI, SITE_URL+"upload.php", onUploadSuccess, onUploadFailed, options);
太好了,它在工作。非常感谢你。这个设置解决了我的问题,结束了一系列的搜索和测试。你是我的英雄
chunkedMode:true,
一直在工作,但是从昨天开始图像就不工作了,但这解决了问题,必须更新应用程序。将chunkedMode设置为false对我没有帮助。我有一个正在生产的应用程序,我需要尽快修复它。显然,文件上传在我的本地开发人员机器上运行良好,因为它们是通过HTTP发布的。但是,当我通过HTTPS将生产服务器作为目标时,文件上载失败,并出现以下错误:[boringssl\u session\u write]SSL\u error\u SYSCALL:操作在库外部失败。我在XCode的调试控制台中得到了这个。有人能澄清一下吗。这是一个可怕的问题。我甚至不知道出了什么问题,挣扎了几个小时。
var options = {
chunkedMode: false,
fileKey: 'file',
fileName: 'filename.jpg',
params:{operatiune:'uploadpoza'}
var onUploadSuccess = function (r) {
clearCache();
alert(JSON.stringify(r));
}
var onUploadFailed = function (error) {
alert(JSON.stringify(r));
}
var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = imageURI.substr(imageURI.lastIndexOf('/') + 1);
options.mimeType = "image/jpeg";
var params = new Object();
params.action = "some value";//=== if u want to send some other parameters
options.params = params;
options.chunkedMode = false;
var ft = new FileTransfer();
ft.upload(imageURI, SITE_URL+"upload.php", onUploadSuccess, onUploadFailed, options);