[英]How to retrieve the download Url after uploading image to Firebase storage, so that I can save it to Firebase database?
[英]How can I save canvas as image to Firebase storage?
我正在嘗試將畫布作為圖像保存到firebase存儲中。 我已經閱讀了很多關於將canvas保存到服務器的文章和問題,並嘗試使用以下代碼實現相同的內容。
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;
});
}
但是,當我運行Web應用程序時,控制台顯示錯誤:
FirebaseError:Firebase存儲:索引0處的
put
中的參數無效:預期的Blob或文件。
如何將畫布成功保存到Firebase存儲?
是的,這是可能的。 您遇到的問題是您正在嘗試上傳dataUrl,但firebase的put函數除了blob或文件之外。 要將畫布轉換為blob,請使用toBlob
函數。
canvas.toBlob(function(blob){
var image = new Image();
image.src = blob;
var uploadTask = storageRef.child('images/' + "apple").put(blob);
});
編輯:更改了var uploadTask = storageRef.child('images/' + "apple").put(image);
to var uploadTask = storageRef.child('images/' + "apple").put(blob);
當我嘗試它時,也不確定這是否適用於你的情況我得到了一個污點畫布錯誤。
什么對我有用的是這個問題的答案如何在javascript中將dataURL轉換為文件對象?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.