Angularjs实现上传图片预览功能


Posted in Javascript onSeptember 01, 2017

废话不多说了,直接给大家贴代码了,具体代码如下所示:

<input type="file" ng-file-select="onFileSelect($files)" accept="image/*">
app.factory("fileReader", 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 onProgress = function(reader, scope) {
        return function (event) {
          scope.$broadcast("fileProgress",
              {
                total: event.total,
                loaded: event.loaded
              });
        };
      };
      var getReader = function(deferred, scope) {
        var reader = new FileReader();
        reader.onload = onLoad(reader, deferred, scope);
        reader.onerror = onError(reader, deferred, scope);
        reader.onprogress = onProgress(reader, 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
      };
  });

选择图片后执行的方法

$scope.onFileSelect = function(files) {
      var fileIn=files[0];
      var img = new Image();
      var fileType = fileIn.name.substring(fileIn.name.lastIndexOf(".") + 1, fileIn.name.length);
      if(fileIn.size>5242880){//单位是B,此处不允许超过5M
        alert("图片不能超过5M")
        return;
      }
      if(fileType=='JPG' || fileType=='PNG' || fileType=='JPEG ' || fileType=='jpg' || fileType=='png' || fileType=='jpeg'){
      }else{
        alert("图片格式只支持:JPG,PNG,JPEG")
        return;
      }
      fileReader.readAsDataUrl(fileIn, $scope)
          .then(function(result) {
            $scope.imageSrc = result;
            console.log(img.width);
      });
    }

总结

以上所述是小编给大家介绍的Angularjs实现上传图片预览功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Extjs学习笔记之九 数据模型(上)
Jan 11 Javascript
js parentElement和offsetParent之间的区别
Mar 23 Javascript
jQuery+css实现图片滚动效果(附源码)
Mar 18 Javascript
使用javascript实现判断当前浏览器
Apr 14 Javascript
浅谈jquery事件处理
Apr 24 Javascript
javascript组合使用构造函数模式和原型模式实例
Jun 04 Javascript
基于javascript实现动态显示当前系统时间
Jan 28 Javascript
js轮播图无缝滚动效果
Jun 17 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
Jan 29 Javascript
Vue中的transition封装组件的实现方法
Aug 13 Javascript
微信小程序wx.request的简单封装
Nov 13 Javascript
Vue跨域请求问题解决方案过程解析
Aug 07 Javascript
JavaScript中使用参数个数实现重载功能
Sep 01 #Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
Sep 01 #Javascript
jQuery EasyUI结合zTree树形结构制作web页面
Sep 01 #jQuery
基于Vue.js 2.0实现百度搜索框效果
Dec 28 #Javascript
JavaScript闭包的简单应用
Sep 01 #Javascript
写给vue新手们的vue渲染页面教程
Sep 01 #Javascript
深入理解Vue 的条件渲染和列表渲染
Sep 01 #Javascript
You might like
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
简单谈谈favicon
2015/06/10 PHP
js 单引号 传递方法
2009/06/22 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
Javascript基础教程之switch语句
2015/01/18 Javascript
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
JavaScrpt的面向对象全面解析
2017/05/09 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
vue-cli webpack 引入jquery的方法
2018/01/10 jQuery
layui实现动态和静态分页
2018/04/28 Javascript
jQuery实现ajax回调函数带入参数的方法示例
2018/06/26 jQuery
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
Angular Material Icon使用详解
2018/11/07 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
用python实现面向对像的ASP程序实例
2014/11/10 Python
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
听歌识曲--用python实现一个音乐检索器的功能
2016/11/15 Python
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
pytorch 中forward 的用法与解释说明
2021/02/26 Python
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
临床医学大学生求职信
2013/09/28 职场文书
办公室主任主任岗位责任制
2014/02/11 职场文书
二年级学生期末评语
2014/12/26 职场文书
聘用合同范本
2015/09/21 职场文书
贷款担保书范本
2015/09/22 职场文书
Python竟然能剪辑视频
2021/05/25 Python
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL
Linux下搭建SFTP服务器的命令详解
2022/06/25 Servers
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript