2016-06-17 17 views
5

Tuvali, bir görüntü olarak firebase deposuna kaydetmeye çalışıyorum. Tuvali sunucuya kaydetme ile ilgili birçok makale ve soruları okudum ve aşağıdaki kodu kullanarak uygulamayı denedim. Tuvali resim olarak Firebase deposuna nasıl kaydedebilirim?

function server(){ 
    canvas = document.getElementById("c"); 
    var storageRef = firebase.storage().ref(); 
    var mountainsRef = storageRef.child('mountains.jpg'); 
    var image = new Image(); 
    image.src = canvas.toDataURL("image/png"); 
    var uploadTask = storageRef.child('images/' + "apple").put(image); 
    uploadTask.on('state_changed', function(snapshot){ 
     // Observe state change events such as progress, pause, and resume 
     // See below for more detail 
    }, function(error) { 
     // Handle unsuccessful uploads 
    }, function() { 
     // Handle successful uploads on complete 
     // For instance, get the download URL: https://firebasestorage.googleapis.com/... 
     var downloadURL = uploadTask.snapshot.downloadURL; 
    }); 
} 

Ama web uygulaması çalıştırdığınızda, konsol gösterir hatası:

FirebaseError: Firebase Storage: Invalid argument in put at index 0: Expected Blob or File.

nasıl başarıyla Firebase depolamaya bir tuval kaydedebilirim?

cevap

4

Evet, bu mümkün. Karşılaştığınız sorun, bir dataUrl, ancak firebase'in put işlevini yalnızca blob veya dosyalar dışında yüklemeye çalıştığınızdır. Tuvali bloğa dönüştürmek için toBlob işlevini kullanın.

canvas.toBlob(function(blob){ 
    var image = new Image(); 
    image.src = blob; 
    var uploadTask = storageRef.child('images/' + "apple").put(blob); 
}); 

Düzenleme: var uploadTask = storageRef.child('images/' + "apple").put(blob); Ayrıca

i Kusurlu bir tuval hata var o çalıştığımızda bu durumda çalışacaktır emin değil var uploadTask = storageRef.child('images/' + "apple").put(image); değişti. benim için çalıştı Ne

i iki hataları alıyorum bu soruya şimdi How to convert dataURL to file object in javascript?

i çözüm çalıştı
+0

ama cevabı oldu 'Firebase Depolama: Beklenen Kabarcık veya File.' ve': endeksi 0 altına soktuğu geçersiz argüman http: // localhost: 11080/[object% 20Blob] 404 (Bulunamadı) – pavitran

İlgili konular