温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

angularjs怎么实现多张图片上传并预览功能

发布时间:2021-06-18 14:54:57 来源:亿速云 阅读:350 作者:小新 栏目:web开发

这篇文章主要介绍angularjs怎么实现多张图片上传并预览功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

具体内容如下

directive.js

/*   * 多图片上传及预览指令(需指定图片类名)   *   */    angular.module('routerModule').directive('fileModel', ['$parse', 'fileReader', function($parse, fileReader) {   return {   restrict:'A',    link:function(scope, element, attrs, ngModel) {    var model = $parse(attrs.fileModel);    var modelSetter = model.assign;    var imgviewID = attrs["imgViewId"];    var imgView = angular.element(document.querySelector("."+imgviewID));    element.bind('change', function(event) {    scope.$apply(function() {     modelSetter(scope, element[0].files[0]);    });    //附件预览    scope.file = (event.srcElement || event.target).files[0];    fileReader.readAsDataUrl(scope.file, scope).then(function(result) {     imgView.attr("src",result);    });    });   }   }  }]);    angular.module('routerModule').factory('fileReader', ["$q", "$log", 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 getReader = function(deferred, scope) {   var reader = new FileReader();   reader.onload = onLoad(reader, deferred, scope);   reader.onerror = onError(reader, deferred, 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   };   }  ]);

html关键代码

<section class="infogroup">   <h5>法人证件</h5>   <div class="row relatedCard">   <div class="col-md-4 txtcenter">    <p>身份证正面</p>    <div><img ng-src="showImg/{{dealer.idCardFace}}" class="idCardFace" enlarge-pic/></div>    <span class="btn btn-file btn btn-xs btn-primary btn-editable picEdit"><i class="fa fa-edit"></i> 点击编辑     <input type="file" file-model="idCardFace" img-view-id="idCardFace" />    </span>   </div>   <div class="col-md-4 txtcenter">    <p>身份证反面</p>    <div><img ng-src="showImg/{{dealer.idCardBack}}" class="idCardBack" enlarge-pic/></div>    <span class="btn btn-file btn btn-xs btn-primary btn-editable picEdit"><i class="fa fa-edit"></i> 点击编辑     <input type="file" file-model="idCardBack" img-view-id="idCardBack" />    </span>   </div>       </div>  </section>

controller.js中发送到后台的数据

$scope.postData = {   dealerId: $scope.dealer.dealerId,   companyName: $scope.dealer.companyName,   companySize: $scope.dealer.companySize,   idCardFace: angular.element(document.querySelector(".idCardFace"))[0].src,   idCardBack: angular.element(document.querySelector(".idCardBack"))[0].src  };  $http.post('updateDealerCertificate',$scope.postData).success(function(data){  <!-- 成功执行代码 -->  });

预览如下:

angularjs怎么实现多张图片上传并预览功能

以上是“angularjs怎么实现多张图片上传并预览功能”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI