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/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
Nov 25 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
Jan 13 Javascript
angularjs中使用ng-bind-html和ng-include的实例
Apr 28 Javascript
vue element table 表格请求后台排序的方法
Sep 28 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
Nov 16 Javascript
jQuery时间戳和日期相互转换操作示例
Dec 07 jQuery
基于elementUI实现图片预览组件的示例代码
Mar 31 Javascript
详解Vue调用手机相机和相册以及上传
May 05 Javascript
Vue项目中如何使用Axios封装http请求详解
Oct 23 Javascript
Javascript 关于基本类型和引用类型的个人理解
Nov 01 Javascript
JS document内容及样式操作完整示例
Jan 14 Javascript
JavaScript碰撞检测原理及其实现代码
Mar 12 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删除目录及目录下所有文件的方法详解
2013/06/06 PHP
php统计文章排行示例
2014/03/04 PHP
php如何解决无法上传大于8M的文件问题
2014/03/10 PHP
iframe 自适应高度[在IE6 IE7 FF下测试通过]
2009/04/13 Javascript
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
javascript查询字符串参数的方法
2015/01/28 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
基于jquery实现最简单的选项卡切换效果
2016/05/08 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
vue页面使用阿里oss上传功能的实例(一)
2017/08/09 Javascript
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
2019/04/25 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
2013/11/27 Python
python实现定时自动备份文件到其他主机的实例代码
2018/02/23 Python
Python之用户输入的实例
2018/06/22 Python
Python中pip更新和三方插件安装说明
2018/07/08 Python
浅析python的优势和不足之处
2018/11/20 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
python已协程方式处理任务实现过程
2019/12/27 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
python os.rename实例用法详解
2020/12/06 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
《寓言两则》教学反思
2014/02/27 职场文书
公司募捐倡议书
2014/05/14 职场文书
企业法律事务工作总结
2015/08/11 职场文书
vue实现同时设置多个倒计时
2021/05/20 Vue.js
postgresql 删除重复数据案例详解
2021/08/02 PostgreSQL
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS