angularjs实现多张图片上传并预览功能


Posted in Javascript onFebruary 24, 2017

本文实例为大家分享了angularjs上传多张图片并预览的具体代码,供大家参考,具体内容如下

directive.js

/* 
 * 多图片上传及预览指令(需指定图片类名) 
 * 
 */ 
 
angular.module('routerModule').directive('fileModel', ['$parse', 'fileReader', function($parse, fileReader) { 
 return { 
 restrict:'A', 
  link:function(scope, element, attrs, ngModel) { 
  var model = $parse(attrs.fileModel); 
  var modelSetter = model.assign; 
  var imgviewID = attrs["imgViewId"]; 
  var imgView = angular.element(document.querySelector("."+imgviewID)); 
  element.bind('change', function(event) { 
  scope.$apply(function() { 
   modelSetter(scope, element[0].files[0]); 
  }); 
  //附件预览 
  scope.file = (event.srcElement || event.target).files[0]; 
  fileReader.readAsDataUrl(scope.file, scope).then(function(result) { 
   imgView.attr("src",result); 
  }); 
  }); 
 } 
 } 
}]); 
 
angular.module('routerModule').factory('fileReader', ["$q", "$log", function($q, $log) { 
 var onLoad = function(reader, deferred, scope) { 
 return function() { 
  scope.$apply(function() { 
  deferred.resolve(reader.result); 
  }); 
 } 
 } 
 
 var onError = function(reader, deferred, scope) { 
 return function() { 
  scope.$apply(function() { 
  deferred.reject(reader.result); 
  }); 
 }; 
 }; 
 
 var getReader = function(deferred, scope) { 
 var reader = new FileReader(); 
 reader.onload = onLoad(reader, deferred, scope); 
 reader.onerror = onError(reader, deferred, scope); 
 return reader; 
 }; 
 
 var readAsDataURL = function(file, scope) { 
 var deferred = $q.defer(); 
 var reader = getReader(deferred, scope); 
 reader.readAsDataURL(file); 
 return deferred.promise; 
 } 
 return { 
 readAsDataUrl: readAsDataURL 
 }; 
 } 
]);

html关键代码

<section class="infogroup"> 
 <h4>法人证件</h4> 
 <div class="row relatedCard"> 
 <div class="col-md-4 txtcenter"> 
  <p>身份证正面</p> 
  <div><img ng-src="showImg/{{dealer.idCardFace}}" class="idCardFace" enlarge-pic/></div> 
  <span class="btn btn-file btn btn-xs btn-primary btn-editable picEdit"><i class="fa fa-edit"></i> 点击编辑 
   <input type="file" file-model="idCardFace" img-view-id="idCardFace" /> 
  </span> 
 </div> 
 <div class="col-md-4 txtcenter"> 
  <p>身份证反面</p> 
  <div><img ng-src="showImg/{{dealer.idCardBack}}" class="idCardBack" enlarge-pic/></div> 
  <span class="btn btn-file btn btn-xs btn-primary btn-editable picEdit"><i class="fa fa-edit"></i> 点击编辑 
   <input type="file" file-model="idCardBack" img-view-id="idCardBack" /> 
  </span> 
 </div>     
 </div> 
</section>

controller.js中发送到后台的数据

$scope.postData = { 
 dealerId: $scope.dealer.dealerId, 
 companyName: $scope.dealer.companyName, 
 companySize: $scope.dealer.companySize, 
 idCardFace: angular.element(document.querySelector(".idCardFace"))[0].src, 
 idCardBack: angular.element(document.querySelector(".idCardBack"))[0].src 
}; 
$http.post('updateDealerCertificate',$scope.postData).success(function(data){ 
<!-- 成功执行代码 --> 
});

预览如下:

angularjs实现多张图片上传并预览功能

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

Javascript 相关文章推荐
用CSS+JS实现的进度条效果效果
Jun 05 Javascript
js 固定悬浮效果实现思路代码
Aug 02 Javascript
JavaScript Promise 用法
Jun 14 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
Aug 24 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
Aug 25 Javascript
BootStrap Datetimepicker 汉化的实现代码
Feb 10 Javascript
vue mixins组件复用的几种方式(小结)
Sep 06 Javascript
小程序云开发初探(小结)
Oct 24 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
Apr 11 Javascript
微信小程序实现日期格式化和倒计时
Nov 01 Javascript
bootstrap table.js动态填充单元格数据的多种方法
Jul 18 Javascript
Vue h函数的使用详解
Feb 18 Vue.js
Angularjs分页查询的实现
Feb 24 #Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
Feb 24 #Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
Feb 24 #Javascript
canvas实现图片根据滑块放大缩小效果
Feb 24 #Javascript
详解JS中的立即执行函数
Feb 24 #Javascript
几行js代码实现自适应
Feb 24 #Javascript
javascript 删除数组元素和清空数组的简单方法
Feb 24 #Javascript
You might like
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
发一个php简单的伪原创程序,配合商城采集用的
2010/10/12 PHP
php学习之运算符相关概念
2011/06/09 PHP
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
HTML node相关的一些资料整理
2010/01/01 Javascript
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
jQuery操作select的实例代码
2012/06/14 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
如何改进javascript代码的性能
2015/04/02 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
基于JavaScript实现Tab选项卡切换效果
2016/11/24 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
jQuery ajax请求struts action实现异步刷新
2017/04/19 jQuery
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
Vue SPA 初次进入加载动画实现代码
2019/11/14 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
python3 与python2 异常处理的区别与联系
2016/06/19 Python
详解 Python 读写XML文件的实例
2017/08/02 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
python连接mongodb数据库操作数据示例
2020/11/30 Python
CSS3 网页下拉菜单代码解释 中文翻译
2010/02/27 HTML / CSS
linux比较文件内容的命令是什么
2013/03/04 面试题
省优秀教师事迹材料
2014/01/30 职场文书
运动会方队口号
2014/06/07 职场文书
领导班子遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
庆祝教师节标语
2014/10/09 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
python四种出行路线规划的实现
2021/06/23 Python