2015-03-19 33 views
0

我有一个JavaScript图片上传器,它将上传图片,并给我图像src。我需要将此值保存在我的FireBase数据库中,以便创建当前用户。AngularJS + Firebase上传个人档案

我试图输出img.src到隐藏的输入,但似乎没有工作。像这样:

$('.userImageValue').val(img.src); 

<input class="userImageValue" ng-model="data.userImage" style="display: none;"> 

我想通了,如果我改变的价值,一旦它被添加到它的工作原理无形的投入。那么在插入src值后,如何才能最好地使输入“注册”?

以下是创建新用户的控制器。

$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的值低于作为火力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); 
    } 
    }); 

我希望这是有道理的,并感谢您的先进!

+0

“注册”不起作用,因为您正在使用jquery将值插入绑定到范围变量的输入。我想这个问题/它的一些变种已经回答过了,我会试着找一些例子。 – 2015-03-22 10:39:30

+0

这是在另一个[问题](http://stackoverflow.com/q/29143088/1526037) – 2015-03-22 10:54:41

回答

0

您可能要考虑使用图像部分的分析。

1)它也有一个免费的分层,但比firebase免费分层的存储容量大得多,这些分层很快就会被图像耗尽。 2)它有更好的图像imo工具。

+0

相同的症状这个答案是不是真的与这个问题有关,因为@BtrCSowl没有存储实际的图像文件在Firebase ,而是图像的src网址。 Firebase是一个nosql数据库(键/值),而不是对象存储服务。这意味着您无法直接将图像文件存储在Firebase中。但是,您可以将Firebase中的许多图像存储为base64编码的字符串。但是,将图像转换为base64字符串需要一点时间,然后再返回,所以这不是最好的解决方法。 – 2015-03-22 10:49:43