demo .inputBox{width: 160px; height: 28px; padding: 0 0 0 8px; box-sizing: border-box; background-color:#fff; margin-left: 5px; border: 1px solid #c4c4c4; color: #333; border-radius: 3px; -o-border-radius: 3px;-moz-border-radius: 3px;-webkit-border-radius: 3px;} .inputBox:focus{border: 1px solid#207fe9;} .btn-primary {color:#fff; background-color: #428bca; border-color: #357ebd;} .btn {display: inline-block; padding: 6px 12px; margin-bottom: 0; font-size: 14px; font-weight: 400;line-height: 1.42857143; text-align: center; white-space: nowrap; vertical-align: middle; -ms-touch-action: manipulation; touch-action: manipulation; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; background-image: none; border: 1px solid transparent; border-radius: 4px;} .bg-bbbbbb{background-color:#bbb;} .fl{float:left;} .ml5{margin-left: 5px;} .ml10{margin-left: 10px;} .ml30{margin-left: 30px;} .mt10{margin-top: 10px;} .mt20{margin-top: 20px;} .f-cb:after:after{display:block;clear:both;visibility:hidden;height:0;overflow:hidden;content:".";} .f-cb{zoom:1;} .f-cb .topSearch{ float: left; margin-top: 10px; line-height: 30px; font-size: 12px; } myCtrl.js: //关键 js 部分varmyTestCtrl = 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; returnfalse; } scope.fileName = scope.file[0].name; varpostfix = scope.fileName.substring(scope.fileName.lastIndexOf(".")+1).toLowerCase(); if(postfix !="jpg"&& postfix !="png"){ alert("图片仅支持png、jpg类型的文件"); scope.fileName =""; scope.file =null; scope.$apply(); returnfalse; } scope.$apply(); scope.reader =newFileReader();//创建一个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; varurl ='';//接口路径 varfd =newFormData(); 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; }); }; });
|