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技术技巧大全(五)
Jan 22 Javascript
jQuery.each()用法分享
Jul 31 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
Jul 16 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
Apr 20 Javascript
Bootstrap中表单控件状态(验证状态)
Aug 04 Javascript
Angular中ng-bind和ng-model的区别实例详解
Apr 10 Javascript
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
Aug 10 Javascript
jquery.param()实现数组或对象的序列化方法
Oct 08 jQuery
Three.JS实现三维场景
Dec 30 Javascript
如何在JavaScript中谨慎使用代码注释
Jun 21 Javascript
使用 js 简单的实现 bind、call 、aplly代码实例
Sep 07 Javascript
JavaScript实现轮播图片完整代码
Mar 07 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 批量删除 sql语句
2009/06/05 PHP
与文件上传有关的php配置参数总结
2013/06/14 PHP
使用配置类定义Codeigniter全局变量
2014/06/12 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
Yii列表定义与使用分页方法小结(3种方法)
2016/07/15 PHP
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
使用jquery prev()方法找到同级的前一个元素
2014/07/11 Javascript
jquery实现未经美化的简洁TAB菜单效果
2015/08/28 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
jQuery Tree Multiselect使用详解
2017/05/02 jQuery
微信小程序如何获知用户运行小程序的场景教程
2017/05/17 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
ionic3 懒加载
2017/08/16 Javascript
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
详解python异步编程之asyncio(百万并发)
2018/07/07 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
2019/11/30 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
2019/12/27 Python
Python参数传递对象的引用原理解析
2020/05/22 Python
Keras自定义实现带masking的meanpooling层方式
2020/06/16 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
美国50岁以上单身人士约会平台:SilverSingles
2018/06/29 全球购物
365 Tickets英国:全球景点门票
2019/07/06 全球购物
服装行业创业计划书范文
2014/02/05 职场文书
军训学生自我鉴定
2014/02/12 职场文书
领导班子对照检查剖析材料
2014/10/13 职场文书
母亲节主题班会
2015/08/14 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书
解析laravel使用workerman用户交互、服务器交互
2021/04/28 PHP