2015-03-19 69 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