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下有关dom以及xml节点访问兼容问题
Nov 26 Javascript
Extjs学习笔记之四 工具栏和菜单
Jan 07 Javascript
js word表格动态添加代码
Jun 07 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
Mar 05 Javascript
简述JavaScript的正则表达式中test()方法的使用
Jun 16 Javascript
JavaScript常用判断写法大全(推荐)
May 30 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
Aug 15 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
Aug 25 Javascript
jQuery实现的手风琴侧边菜单效果
Mar 29 jQuery
解决修复npm安装全局模块权限的问题
May 17 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
Dec 05 Javascript
ES6基础之 Promise 对象用法实例详解
Aug 22 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
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
PHP文章按日期(月日)SQL归档语句
2012/11/29 PHP
PHP中CheckBox多选框上传失败的代码写法
2017/02/13 PHP
一个非常实用的php文件上传类
2017/07/04 PHP
ExtJS GridPanel 根据条件改变字体颜色
2010/03/08 Javascript
jquery $.ajax相关用法分享
2012/03/16 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
jquery map方法使用示例
2014/04/23 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
2015/07/27 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
2016/12/17 Javascript
jQuery表单元素选择器代码实例
2017/02/06 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
vue2.0中goods选购栏滚动算法的实现代码
2017/05/17 Javascript
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
JavaScript调用模式与this关键字绑定的关系
2018/04/21 Javascript
浅析微信扫码登录原理(小结)
2018/10/29 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
Python实现PS滤镜特效之扇形变换效果示例
2018/01/26 Python
bluepy 一款python封装的BLE利器简单介绍
2019/06/25 Python
对Django url的几种使用方式详解
2019/08/06 Python
Django为窗体加上防机器人的验证码功能过程解析
2019/08/14 Python
python同步两个文件夹下的内容
2019/08/29 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
一款基于css3的动画按钮代码教程
2014/11/23 HTML / CSS
浅谈css3中calc在less编译时被计算的解决办法
2017/12/04 HTML / CSS
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
电大学习个人自我评价范文
2013/10/04 职场文书
小学国庆节活动方案
2014/02/11 职场文书
年度考核自我鉴定
2014/03/19 职场文书
志愿服务心得体会
2016/01/15 职场文书
十个Python自动化常用操作,即拿即用
2021/05/10 Python