Ich versuche, ein Bild von einer URL (mit ref().put(file)
) (www.example.com/img.jpg) in den Firebase-Speicher hochzuladen.
Dazu brauche ich eine Datei oder einen Blob, aber wenn ich new File(url)
versuche, heißt es "nicht genug Argumente"…
EDIT: Und ich möchte eigentlich ein ganzes Verzeichnis von Dateien hochladen, deshalb kann ich sie nicht über die Konsole hochladen
Versuchen Sie es mit der fetch-API . Sie können es wie folgt verwenden:
fetch('https://upload.wikimedia.org/wikipedia/commons/7/77/Delete_key1.jpg')
.then(res => res.blob()) // Gets the response and returns it as a blob
.then(blob => {
// Here's where you get access to the blob
// And you can use it for whatever you want
// Like calling ref().put(blob)
// Here, I use it to make an image appear on the page
let objectURL = URL.createObjectURL(blob);
let myImage = new Image();
myImage.src = objectURL;
document.getElementById('myImg').appendChild(myImage)
});
<div id="myImg"></div>
Ab April 2018 hat die Abruf-API weltweit etwa 88% Browser-Unterstützung , wobei im Wesentlichen nur IE fehlt. Sie können dies mit einem polyfill auf nahezu 100% bringen, was ich empfehle, wenn Sie noch auf IE abzielen.
Die Antwort von @James ist korrekt, jedoch nicht mit allen Browsern kompatibel. Du kannst es versuchen
$.get('blob:yourbloburl').then(function(data) {
var blob = new Blob([data], { type: 'audio/wav' });
});
Es hat nicht funktioniert, bis ich Anmeldeinformationen hinzugefügt habe
fetch(url, {
headers: {
"Content-Type": "application/octet-stream",
},
credentials: 'include'
})