小编给大家分享一下AngularJs如何实现上传前预览图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、网站空间、营销软件、网站建设、甘孜州网站维护、网站推广。
demo.html:
demo myCtrl.js:主视觉图://关键 js 部分 var myTestCtrl = angular.module('myTestCtrl', []); //定义“上传”指令,修改后也可用于上传其他类型的文件 myTestCtrl.directive("imgUpload",function(){ return{ //通过设置项来定义 restrict: 'AE', scope: false, template: '', //name:testReport 与接口字段相对应。 replace: true, link: function(scope, ele, attrs) { ele.bind('click', function() { $('#file').val(''); }); ele.bind('change', function() { scope.file = ele[0].children[1].files; if(scope.file[0].size > 52428800){ alert("图片大小不大于50M"); scope.file = null; return false; } scope.fileName = scope.file[0].name; var postfix = scope.fileName.substring(scope.fileName.lastIndexOf(".")+1).toLowerCase(); if(postfix !="jpg" && postfix !="png"){ alert("图片仅支持png、jpg类型的文件"); scope.fileName = ""; scope.file = null; scope.$apply(); return false; } scope.$apply(); scope.reader = new FileReader(); //创建一个FileReader接口 console.log(scope.reader); if (scope.file) { //获取图片(预览图片) scope.reader.readAsDataURL(scope.file[0]); //FileReader的方法,把图片转成base64 scope.reader.onload = function(ev) { scope.$apply(function(){ scope.thumb = { imgSrc : ev.target.result //接收base64,scope.thumb.imgSrc为图片。 }; }); }; }else{ alert('上传图片不能为空!'); } }); } }; }); myTestCtrl.controller("myTestCtrl", function($scope, $http) { //导入图片 $scope.saveClick = function () { //禁用按钮 $scope.imgDisabled = true; $scope.submitDisabled = true; var url = '';//接口路径 var fd = new FormData(); fd.append('testReport', $scope.file[0]);//参数 testReport=后台定义上传字段名称 ; $scope.file[0] 内容 $http.post(url, fd, { transformRequest: angular.identity, headers: { 'Content-Type': undefined } }).success(function (data) { if(data.code != 100) { alert(JSON.stringify('文件导入失败:'+files.files[0].name+',请重新上传正确的文件或格式')); }else{ alert(JSON.stringify('文件导入成功:'+files.files[0].name)); } //恢复按钮 $scope.imgDisabled = false; $scope.submitDisabled = false; }).error(function (data) { alert('服务器错误,文件导入失败!'); //恢复按钮 $scope.imgDisabled = false; $scope.submitDisabled = false; }); }; });
以上是“AngularJs如何实现上传前预览图片”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!