国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

AngularJs上傳前預覽圖片的實例代碼

2019-11-19 17:51:33
字體:
來源:轉載
供稿:網友

在工作中,使用AngularJs進行開發,在項目中,經常會遇到上傳圖片后,需在一旁預覽圖片內容,之前查了一些資料,結合實踐,得出一種比較實用的方法,相對簡化版,在這里記錄一下,如有不同看法,歡迎一起溝通,一起成長。

demo.html:

<!doctype html> <html ng-app="myTestCtrl"> <head>  <meta charset="UTF-8">  <title>demo</title>  <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>  <script src="myCtrl.js"></script>  <style type="text/css">  .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; }  </style> </head> <body id="myTestCtrl" ng-controller="myTestCtrl"> <div class="wrapper">  <div class="content">   <div class="f-cb" style="height: 40px;">    <div class="topSearch"><span class="w70 tr dib fl">主視覺圖:</span><input type="text" class="inputBox fl ml5" ng-model="fileName"><button class="btn btn-primary ml10" ng-class="{'bg-bbbbbb':imgDisabled}" style="width:60px; margin-top:-3px; height:18px; position: relative;" img-upload></button></div>   </div>   <div class="f-cb mt10"><img ng-src="{{thumb.imgSrc}}" style="width:200px; height: 200px;" ng-show="thumb.imgSrc"/></div>  </div>  <div class="mt20 ml30">   <button class="btn btn-primary" ng-click="saveClick()" ng-class="{'bg-bbbbbb':submitDisabled}">提交</button>  </div> </div> </body> </html> <span style="font-size:14px;">myCtrl.js:</span> <pre name="code" class="javascript">//關鍵 js 部分 var myTestCtrl = angular.module('myTestCtrl', []); //定義“上傳”指令,修改后也可用于上傳其他類型的文件 myTestCtrl.directive("imgUpload",function(){  return{   //通過設置項來定義   restrict: 'AE',   scope: false,   template: '<div class="fl"><input type="button" id="storeBtn" style="padding:0; position: absolute; top: 0; left: 0; background: none; border: none;color: #fff; width:84px; height: 30px; line-height: 30px;" value="選擇文件"><input type="file" name="testReport" id="file" ng-disabled="imgDisabled" style="position: absolute; top: 0; left: 0; opacity: 0;height: 30px;" accept=".jpg,.png"></div>', //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;   });  }; });</pre><br> <pre></pre> <p></p> <pre></pre> <p></p> <pre></pre> 

關于angularjs的知識大家可以參考下小編給大家整理的專題,angularjs學習筆記,一起看看吧!

以上所述是小編給大家介紹的AngularJs上傳前預覽圖片的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳信县| 南和县| 达日县| 宣化县| 静宁县| 福建省| 兴化市| 榕江县| 锦屏县| 高阳县| 昌江| 延寿县| 东平县| 万年县| 南康市| 滨海县| 秦皇岛市| 双辽市| 合川市| 讷河市| 鄂州市| 永宁县| 铜梁县| 迁安市| 平顶山市| 长汀县| 石首市| 通江县| 丹凤县| 佛坪县| 眉山市| 韩城市| 贡嘎县| 康马县| 永修县| 商南县| 同仁县| 南京市| 永城市| 天峨县| 枣阳市|