AngularJS+Firebase上传个人资料图片

AngularJS + Firebase Upload profile image

本文关键字:资料图片 AngularJS+Firebase      更新时间:2023-09-26

我有一个JavaScript图像上传器,它会上传一个图像并给我图像src。我需要将这个值保存在我的FireBase DB中,以供当前创建的用户使用。

我尝试将img.src输出到一个隐藏的输入,但似乎不起作用。像这样:

$('.userImageValue').val(img.src);
<input class="userImageValue" ng-model="data.userImage" style="display: none;">

我刚刚发现,如果我在将值添加到不可见输入后更改该值,它就会起作用。那么,在插入src值之后,我如何才能最好地使输入"register"呢

这是创建新用户的控制器。

  $scope.list = $firebaseArray(new Firebase("https://my-db.firebaseio.com/users"));
  // Create user button  
  $scope.add_new_user = function() {
    console.log($scope.data);
    $scope.list.$add($scope.data);
    $scope.data = {};
  }

这是当前使用上述代码的页面上的一个输入,并为正在创建的当前用户保存一个新字段。

<input id="firstname" type="text" ng-model="data.firstname" class="form-control" placeholder="First name">

这是我陷入困境的部分我需要将下面代码中img.src的值保存为当前正在创建的用户的FireBase DB中的新字段。

  var userImageUploader = document.getElementById('userImageUploader');
  userImageUploader.addEventListener('change', function(e) {
    var file = userImageUploader.files[0];
    var imageType = /image.*/;
    if (file.type.match(imageType)) {
      var reader = new FileReader();
      reader.onload = function(e) {
        var img = new Image();
        img.src = reader.result;
      }
      reader.readAsDataURL(file);
    }
  });

我希望这是合理的,并提前感谢你!

您可能需要考虑对图像部分使用Parse。

1) 它还有一个免费层,但存储空间比无火球层大得多,后者很快就会被图像耗尽。2) 它有更好的图像工具imo。