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 相关文章推荐
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
Aug 08 Javascript
Node.js与PHP、Python的字符处理性能对比
Jul 06 Javascript
jQuery动态创建html元素的常用方法汇总
Sep 05 Javascript
js实现多选项切换导航菜单的方法
Feb 06 Javascript
js实现点击图片改变页面背景图的方法
Feb 28 Javascript
纯javascript制作日历控件
Jul 17 Javascript
jquery彩色投票进度条简单实例演示
Jul 23 Javascript
微信小程序 Storage API实例详解
Oct 02 Javascript
在vue项目中使用Nprogress.js进度条的方法
Jan 31 Javascript
浅谈node.js 命令行工具(cli)
May 10 Javascript
vue router 跳转后回到顶部的实例
Aug 31 Javascript
Node.js npm命令运行node.js脚本的方法
Oct 10 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自动生成月历代码
2006/10/09 PHP
PHP 引用是个坏习惯
2010/03/12 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
smarty模板引擎中变量及变量修饰器用法实例
2015/01/22 PHP
jQeury淡入淡出需要注意的问题
2010/09/08 Javascript
jquery(live)中File input的change方法只起一次作用的解决办法
2011/10/21 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
jQuery+Ajax实现无刷新操作
2016/01/04 Javascript
EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容
2016/08/24 Javascript
jQuery简单创建节点的方法
2016/09/09 Javascript
JS实现Ajax的方法分析
2016/12/20 Javascript
详解利用jsx写vue组件的方法示例
2017/07/17 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
如何在JS文件中获取Vue组件
2020/09/16 Javascript
详解Vue的七种传值方式
2021/02/08 Vue.js
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
Python中逗号的三种作用实例分析
2015/06/08 Python
Python实现两个list求交集,并集,差集的方法示例
2018/08/02 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
深入解析HTML5中的Blob对象的使用
2015/09/08 HTML / CSS
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
加拿大服装和鞋类零售商:Mark’s
2021/01/04 全球购物
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
小学数学教学反思
2014/02/02 职场文书
作文评语大全
2014/04/23 职场文书
企业安全生产承诺书
2014/05/22 职场文书
“四风”问题整改措施和努力方向
2014/09/20 职场文书
安阳殷墟导游词
2015/02/10 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
2015年后备干部工作总结
2015/05/15 职场文书
地道战观后感300字
2015/06/04 职场文书
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis