视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
ionic选择多张图片上传的示例代码
2020-11-27 22:28:02 责编:小采
文档

在上一篇博客ionic本地相册、拍照、裁剪、上传(单图完全版) 中,跟大家分享了ionic项目选择本地图片、拍照、裁剪、上传到服务器的内容,但是上一节的内容由于使用了Cordova的Camera插件进行了图片选择与拍摄,所以每次只能支持1张图片的选择与上传。上一篇博客中的内容适合用于头像情景。

在本节中,跟大家分享使用Corodva的ImagePicker插件,实现多图选择与上传。废话不多说,进入主题。

插件安装

cordova plugin add corodva-plugin-imagepicker
cordova plugin add cordova-plugin-file-transfer

定义图片选择服务

angular.module('starter.services', [])
//配置单张图片选择
.factory('SelectPicture', function(UploadFile, Toast) {
 return {
 /**
 * 从图库选择多张图片
 */
 choosePictures: function() {
 window.imagePicker.getPictures(function(res){
 for(var i = 0; i < res.length; i++){
 UploadFile.uploadFile(res[i], "我的服务器接口地址");//传递自己的服务器接口地址
 }
 }, function(err){
 alert(err);
 }, {
 maximumImagesCount: 10, 
 quality: 80
 });
 }
 }
})

定义文件上传服务

//文件上传
.factory('UploadFile', function(Toast) {
 return {
 /**
 * 上传文件到服务器
 *
 * @param fileUrl 文件路径
 * @param server 服务器接口
 */
 uploadFile: function(fileUrl, server) {
 document.addEventListener("deviceready", onDeviceReady, false);
 function onDeviceReady() {
 var options = new FileUploadOptions();
 options.fileKey = "BeanYon";//后台获取文件的键值
 options.fileName = fileUrl.substr(fileUrl.lastIndexOf('/') + 1);
 options.mimeType = "image/jpeg";
 options.chunkedMode = false;

 var params = {};//这里可添加自定义参数
 options.params = params;

 var ft = new FileTransfer();
 ft.upload(fileUrl, 
 encodeURI(server), 
 success, 
 err, 
 options);
 }

 function success(r){
 Toast.show("图片已经成功上传");
 }

 function err(error){
 Toast.show("上传头像失败,请确保网络正常后再试");
 }
 }
 }
})

在Controller中调用

angular.module('starter.controllers', [])
.controller('UsedUploadCtrl', function($scope, SelectPicture) {
 /**
 * 选择图片并上传
 */
 $scope.uploadImage = function(){
 SelectPicture.choosePictures($scope);
 }
})

下载本文
显示全文
专题