有谁知道可能是什么问题?在过去的几周里,我一直试图弄清楚为什么我的代码仅适用于iOS,而不适用于Android设备.任何想法都会得到高度赞赏,因为我没有选择.
在Android设备上它显示发送文件但在服务器上我没有收到任何信息(图片也没有其他参数).另一方面,iOS上的所有工作都很好,服务器也是如此.
我的代码:
home.html的:
imageURL={{imageURL}}
home.ts:
@Component({ selector: 'page-home', templateUrl: 'home.html' }) export class HomePage { imageURL: any; myInput: string; cameraUrl: string; constructor(public navCtrl: NavController) { } takePhoto(){ Camera.getPicture().then((imageData) => { this.imageURL = imageData; }, (err) => { console.log(err); }); } upload(){ var ft = new Transfer(); var options = { fileKey: 'file', fileName: 'filename.jpg', params:{operatiune:'uploadpoza'} } ft.upload(this.imageURL,encodeURI("https://www.myserver.com/test.php"),options) .then((data) => { // success alert("image send:"+this.imageURL); }, (err) => { // error alert("err: "+JSON.stringify(err)); }) } }
我用两种方式检查了错误:
情况1:
我上传的代码中有2个提醒:a.成功时的消息:alert("image send:"+ this.imageURL); 湾 错误消息:alert("err:"+ JSON.stringify(err));
就我而言,我注意到只出现了第一条消息,即正确执行代码的消息.
案例2:
我已经通过电缆将手机连接到笔记本电脑.要启动应用程序,我输入"Node.js-Command-Prompt"命令"ionic run Android".我打开了Chrome浏览器并输入了地址栏"chrome:// inspect /#devices".然后为我的应用选择"INSPECT-option"并弹出控制台.控制台没有显示任何错误.这是测试它的正确方法,还是我应该尝试不同的东西?
我打印了"ft.upload"功能成功时收到的对象"数据".结果是:
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'}