ionic选择多张图片上传的示例代码


Posted in Javascript onOctober 10, 2017

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript中删除指定数组中指定的元素的代码
Feb 12 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
Aug 09 Javascript
JavaScript中Math对象方法使用概述
Jan 02 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
Mar 18 Javascript
Javascript中call与apply的学习笔记
Sep 22 Javascript
深入理解JavaScript系列(34):设计模式之命令模式详解
Mar 03 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
Oct 10 Javascript
解析ajaxFileUpload 异步上传文件简单使用
Dec 30 Javascript
jQuery实现文字自动横移
Jan 08 Javascript
微信小程序实现长按删除图片的示例
May 18 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
Jul 24 Javascript
简单了解JavaScript arguement原理及作用
May 28 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
Oct 10 #Javascript
防止页面url缓存中ajax中post请求的处理方法
Oct 10 #Javascript
Vue实现数字输入框中分割手机号码的示例
Oct 10 #Javascript
JS判断数组那点事
Oct 10 #Javascript
template.js前端模板引擎使用详解
Oct 10 #Javascript
AngularJS中table表格基本操作示例
Oct 10 #Javascript
AngularJS中控制器函数的定义与使用方法示例
Oct 10 #Javascript
You might like
elgg 获取文件图标地址的方法
2010/03/20 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
firefox浏览器下javascript 拖动层效果与原理分析代码
2007/12/04 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
JavaScript计时器示例分析
2015/02/05 Javascript
JavaScript常用的弹出广告及背投广告实现方法
2015/02/06 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
2015/05/16 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
AngularJS 限定$scope的范围实例详解
2017/06/23 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
Vue props 单向数据流的实现
2018/11/06 Javascript
Paypal支付不完全指北
2020/06/04 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
python缩进区别分析
2014/02/15 Python
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
python中的变量如何开辟内存
2018/06/26 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
python map比for循环快在哪
2020/09/21 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
美国在线面料商店:Online Fabric Store
2018/07/26 全球购物
荷兰在线钓鱼商店:Raven
2019/06/26 全球购物
Linux Interview Questions For software testers
2013/05/17 面试题
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
学校法制宣传月活动总结
2014/07/03 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
天鹅湖观后感
2015/06/09 职场文书
Python3的进程和线程你了解吗
2022/03/16 Python