Как получить файл() или Blob() из URL-адреса в javascript?

Я пытаюсь загрузить изображение в хранилище Firebase из URL (с помощью ref().put(file)) (www.example.com/img.jpg).

Для этого мне нужен файл или Blob, но всякий раз, когда я пробую new File(url) он говорит "недостаточно аргументов"...

EDIT: И я действительно хочу загрузить весь каталог файлов, поэтому я не могу загрузить их через консоль

Ответ 1

Попробуйте использовать API извлечения. Вы можете использовать это так:

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 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>

Ответ 2

Ответ @James правильный, но он несовместим со всеми браузерами. Ты можешь попробовать

$.get('blob:yourbloburl').then(function(data) {
  var blob = new Blob([data], { type: 'audio/wav' });
});

Ответ 3

Это не сработало, пока я не добавил учетные данные

fetch(url, {
      headers: {
        "Content-Type": "application/octet-stream",
      },
      credentials: 'include'
 })