Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何上传angularjs中已有的图像大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个现有的图像显示在< img ng-src =''>当我点击提交按钮时,我想上传(与我的其他json对象一起发布).图像存在,所以我不需要使用< input type =“file”>.但是我的代码不起作用.任何人都可以帮助我如何实现这一目标.非常感谢.

plunker link

解决方法

它已经有一段时间了,但我只想展示我是如何实现类似功能

演示

plnkr

行动计划:

>将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,请注明来意。
标签: