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 相关文章推荐
js获取控件位置以及不同浏览器中的差别介绍
Aug 08 Javascript
原生javascript实现的分页插件pagenav
Aug 28 Javascript
JQuery中DOM事件绑定用法详解
Jun 13 Javascript
js简单实现标签云效果实例
Aug 06 Javascript
解决JS无法调用Controller问题的方法
Dec 31 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
May 05 Javascript
JavaScript每天必学之数组和对象部分
Sep 17 Javascript
微信小程序 122100版本更新问题解决方案
Dec 22 Javascript
JavaScript类型相关的常用操作总结
Feb 14 Javascript
解决layui数据表格Date日期格式的回显Object的问题
Sep 19 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
Apr 16 Javascript
JavaScript设计模式之原型模式详情
Jun 21 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
PHP自动生成月历代码
2006/10/09 PHP
smarty内置函数capture用法分析
2015/01/22 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
php多进程应用场景实例详解
2019/07/22 PHP
firefo xml 读写实现js代码
2009/06/11 Javascript
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
innerText 使用示例
2014/01/23 Javascript
JavaScript中的Truthy和Falsy介绍
2015/01/01 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
JavaScript DOM操作表格及样式
2015/04/13 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
js变量提升深入理解
2016/09/16 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
Node.js学习之查询字符串解析querystring详解
2017/09/28 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
2018/08/03 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
jQuery实现的图片点击放大缩小功能案例
2020/01/02 jQuery
JavaScript快速调试的两个技巧
2020/11/04 Javascript
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
对python中的os.getpid()和os.fork()函数详解
2019/08/08 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
2019/10/11 Python
python使用Matplotlib改变坐标轴的默认位置
2019/10/18 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
EJB发布WEB服务一般步骤
2012/10/31 面试题
财产保全担保书范文
2014/04/01 职场文书
教师节演讲稿
2014/05/06 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
看古人们是如何赞美老师的?
2019/07/08 职场文书
使用 Apache 反向代理的设置技巧
2022/01/18 Servers