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 相关文章推荐
网页开发中的容易忽略的问题 javascript HTML中的table
Apr 15 Javascript
JS随机生成不重复数据的实例方法
Jul 17 Javascript
Jquery中的层次选择器与find()的区别示例介绍
Feb 20 Javascript
file控件选择上传文件确定后触发的js事件是哪个
Mar 17 Javascript
node.js中的fs.rmdirSync方法使用说明
Dec 16 Javascript
Node.js编程中客户端Session的使用详解
Jun 23 Javascript
Javascript点击按钮随机改变数字与其颜色
Sep 01 Javascript
JS实现的手机端精简幻灯片效果
Sep 05 Javascript
vue教程之toast弹框全局调用示例详解
Aug 24 Javascript
一次让你了解全部JavaScript的作用域
Jun 24 Javascript
vue 实现一个简单的全局调用弹窗案例
Sep 10 Javascript
解决vue打包报错Unexpected token: punc的问题
Oct 24 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中日期加减法运算实现代码
2011/12/08 PHP
ThinkPHP中的三大自动简介
2014/08/22 PHP
javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
2009/02/04 Javascript
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
2013/11/18 Javascript
探索angularjs+requirejs全面实现按需加载的套路
2016/02/26 Javascript
requireJS使用指南
2016/04/27 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
vue component 中引入less文件报错 Module build failed
2019/04/17 Javascript
javascript实现动态时钟的启动和停止
2020/07/29 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
如何基于jQuery实现五角星评分
2020/09/02 jQuery
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python CSV模块使用实例
2015/04/09 Python
python实现远程通过网络邮件控制计算机重启或关机
2018/02/22 Python
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
python实现Flappy Bird源码
2018/12/24 Python
对python实现合并两个排序链表的方法详解
2019/01/23 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
聊聊python在linux下与windows下导入模块的区别说明
2021/03/03 Python
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
网络教育自我鉴定
2013/11/01 职场文书
教师远程培训感言
2014/03/06 职场文书
违反单位工作制度检讨书
2014/10/25 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
七年级英语教学反思
2016/02/15 职场文书
React 高阶组件HOC用法归纳
2021/06/13 Javascript
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python
Netty结合Protobuf进行编解码的方法
2021/06/26 Java/Android
深入理解go缓存库freecache的使用
2022/02/15 Golang
js作用域及作用域链工作引擎
2022/07/07 Javascript