小編給大家分享一下AngularJs如何實(shí)現(xiàn)上傳前預(yù)覽圖片,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請域名、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、甘孜州網(wǎng)站維護(hù)、網(wǎng)站推廣。
demo.html:
demo myCtrl.js:主視覺圖://關(guān)鍵 js 部分 var myTestCtrl = angular.module('myTestCtrl', []); //定義“上傳”指令,修改后也可用于上傳其他類型的文件 myTestCtrl.directive("imgUpload",function(){ return{ //通過設(shè)置項(xiàng)來定義 restrict: 'AE', scope: false, template: '', //name:testReport 與接口字段相對應(yīng)。 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(); //創(chuàng)建一個(gè)FileReader接口 console.log(scope.reader); if (scope.file) { //獲取圖片(預(yù)覽圖片) scope.reader.readAsDataURL(scope.file[0]); //FileReader的方法,把圖片轉(zhuǎn)成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) { //導(dǎo)入圖片 $scope.saveClick = function () { //禁用按鈕 $scope.imgDisabled = true; $scope.submitDisabled = true; var url = '';//接口路徑 var fd = new FormData(); fd.append('testReport', $scope.file[0]);//參數(shù) testReport=后臺定義上傳字段名稱 ; $scope.file[0] 內(nèi)容 $http.post(url, fd, { transformRequest: angular.identity, headers: { 'Content-Type': undefined } }).success(function (data) { if(data.code != 100) { alert(JSON.stringify('文件導(dǎo)入失?。?#39;+files.files[0].name+',請重新上傳正確的文件或格式')); }else{ alert(JSON.stringify('文件導(dǎo)入成功:'+files.files[0].name)); } //恢復(fù)按鈕 $scope.imgDisabled = false; $scope.submitDisabled = false; }).error(function (data) { alert('服務(wù)器錯(cuò)誤,文件導(dǎo)入失??!'); //恢復(fù)按鈕 $scope.imgDisabled = false; $scope.submitDisabled = false; }); }; });
以上是“AngularJs如何實(shí)現(xiàn)上傳前預(yù)覽圖片”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!