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 相关文章推荐
jquery 学习之二 属性 文本与值(text,val)
Nov 25 Javascript
JavaScript中获取未知对象属性的代码
Apr 27 Javascript
jquery动态添加删除一行数据示例
Jun 12 Javascript
javascript中alert()与console.log()的区别
Aug 26 Javascript
js实现继承的5种方式
Dec 01 Javascript
详解JavaScript对象序列化
Jan 19 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
Mar 31 Javascript
vue+node+webpack环境搭建教程
Nov 05 Javascript
vue引入js数字小键盘的实现代码
May 14 Javascript
JS实现的判断方法、变量是否存在功能示例
Mar 28 Javascript
详解小程序缓存插件(mrc)
Aug 17 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
Jan 15 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
php 在文件指定行插入数据的代码
2010/05/08 PHP
php通过各种函数判断0和空
2020/07/04 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
javascript GUID生成器实现代码
2009/10/31 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
2016/11/30 Javascript
Vue2.0实现将页面中表格数据导出excel的实例
2017/08/09 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
vue+element-ui动态生成多级表头的方法
2018/08/28 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
JavaScript交换变量的常用方法小结【4种方法】
2020/05/07 Javascript
vue中v-model对select的绑定操作
2020/08/31 Javascript
vue实现单一筛选、删除筛选条件
2020/10/26 Javascript
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
Python的ORM框架SQLObject入门实例
2014/04/28 Python
python实现12306火车票查询器
2017/04/20 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
python实现栅栏加解密 支持密钥加密
2019/03/20 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
wxpython绘制音频效果
2019/11/18 Python
python实现数字炸弹游戏
2020/07/17 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
HTML5通用接口详解
2016/06/12 HTML / CSS
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
JS原生实现轮播图的几种方法
2021/03/23 Javascript
个人找工作的自我评价
2013/10/17 职场文书
新闻编辑求职信
2014/04/09 职场文书
班级寄语大全
2014/04/10 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
利用python进行数据加载
2021/06/20 Python
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python