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 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
Jun 29 Javascript
MooBox 基于Mootools的对话框插件
Jan 20 Javascript
用JavaScript实现动画效果的方法
Jul 20 Javascript
javascript调试之DOM断点调试法使用技巧分享
Apr 15 Javascript
js Object2String方便查看js对象内容
Nov 24 Javascript
JS对字符串编码的几种方式使用指南
May 14 Javascript
js数组去重的方法汇总
Jul 29 Javascript
修改Jquery Dialog 位置的实现方法
Aug 26 Javascript
如何在Angular2中使用jQuery及其插件的方法
Feb 09 Javascript
jQuery、zepto、js常用小技巧
Feb 12 Javascript
vue使用监听实现全选反选功能
Jul 06 Javascript
记一次vue去除#问题处理经过小结
Jan 24 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
Windows下PHP的任意文件执行漏洞
2006/10/09 PHP
PHP获取MAC地址的函数代码
2011/09/11 PHP
php中配置文件操作 如config.php文件的读取修改等操作
2012/07/07 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
2016/05/13 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
js基础知识(公有方法、私有方法、特权方法)
2015/11/06 Javascript
基于JS模仿windows文件按名称排序效果
2016/06/29 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
JavaScript箭头函数_动力节点Java学院整理
2017/06/28 Javascript
jQuery简介_动力节点Java学院整理
2017/07/04 jQuery
vue 计时器组件的实现代码
2017/09/14 Javascript
Vue.js 2.x之组件的定义和注册图文详解
2018/06/19 Javascript
vue实现购物车小案例
2019/09/27 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
[03:06]3分钟带你回顾DOTA2完美盛典&完美大师赛
2017/12/06 DOTA
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
德国帽子专家:Hutshopping
2019/11/03 全球购物
PHP如何自定义函数
2016/09/16 面试题
给老婆的婚前保证书
2014/02/01 职场文书
客户经理竞聘演讲稿
2014/05/15 职场文书
体操比赛口号
2014/06/10 职场文书
超市理货员岗位职责
2014/07/04 职场文书
小学捐书活动总结
2014/07/05 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
2014年销售人员工作总结
2014/11/27 职场文书
2014年英语教研组工作总结
2014/12/06 职场文书
高三化学教学反思
2016/02/22 职场文书
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python
Python语言内置数据类型
2022/02/24 Python