ionic选择多张图片上传

在上一篇博客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);
  }
})

闫斌(BeanYon)
2016.11.19

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值