Ionic2+AngularJS2 图片选择component和多图上传
-
功能如下:
- 1.选择照相机或者相册里的图片并且展示
- 2.多张图片异步上传至服务器
-
依赖插件:
- $ ionic plugin add https://github.com/Telerik-Verified-Plugins/ImagePicker
- $ ionic plugin add cordova-plugin-camera
利用RxJS上传多张图片
/*** * 上传多张图片 * @param params: 服务器上传图片api所需参数 * @param filePaths: 通过拍照或者相册拿到的本地图片url数组 * @returns {Observable}: 服务器返回的图片url */ uploadImages(params: any, filePaths: Array<string>):Observable<any> { var options: FileUploadOptions = { fileKey: 'filedata', fileName: 'avatar.jpg', chunkedMode: false, mimeType : "image/jpeg", params: params }; //每个图片上传任务创建一个信号 var observables: Array<any> = []; for (var i = 0; i < filePaths.length; ++i) { let filePath = filePaths[i]; var observable = new Observable((sub:any) => { const fileTransfer = new Transfer(); let url = '图片上传url'; fileTransfer.upload(filePath, url, options) .then((data: FileUploadResult) => { if (200 === data.responseCode) { var response = JSON.parse(data.response); // 图片上传成功,后台会返回一个图片imageUrl字符串 var imageUrl = response.data; // 将该url发送出来 sub.next(imageUrl); sub.complete(); } else { sub.error('上传图片失败!'); } }, (error) => { sub.error(error); }); }); observables.push(observable); } return ForkJoinObservable.create(observables); }