大佬教程收集整理的这篇文章主要介绍了如何上传angularjs中已有的图像,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
演示
行动计划:
>将img / URL转换为Base64格式.
>将Base64数据添加为范围的属性.
采取的步骤:
>创建了一个工厂,使用canvas和promises将URL转换为Base64.
>修改了fileInput指令,使得在图像加载事件时,它会将img转换为Base64并在作用域上分配imgData属性.
>使用imgData属性,将Base64编码的字符串追加到formData
指示
link: function(scope,ele,attrs) { ele.bind('load',function(e) { var imgSrc = e.target.src; urlToBase64.getData(imgSrc).then(function(data) { scope.imgData = data; }); scope.$apply(); }); }
厂
myApp.factory('urlToBase64',['$q',function($q) { var obj = {}; // function to convert URL to Base64 representation function URLtoBase64(url,callback) { var defer = $q.defer(); var img = new Image(); img.crossOrigin = 'Anonymous'; img.onload = function() { var canvas = document.createElement('CANVAS'); var ctx = canvas.getContext('2d'); canvas.height = this.height; canvas.width = this.width; ctx.drawImage(this,0); try { defer.resolve(canvas.toDataURL()); } catch (e) { defer.reject(e); } canvas = null; }; img.src = url; return defer.promise; } obj.getData = URLtoBase64; return obj; }]);
调节器
var fd = new FormData(); // imgData is coming from fileInput directive fd.append('file',$scope.imgData); fd.append('formdata',JSON.stringify($scope.dataform)); var reqObject = { url: 'admin/managecuisineAdd',method: 'POST',data: fd,transformRequest: angular.identity,headers: { 'Content-type': undefined } }; $http(reqObject).then(function(data) { $scope.status = data; $scope.itemlist.push(data) $scope.message = "New Dish Added Successfully" });
以上是大佬教程为你收集整理的如何上传angularjs中已有的图像全部内容,希望文章能够帮你解决如何上传angularjs中已有的图像所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。