Saltar al contenido

¿Cómo obtener un archivo o blob de una URL de objeto?

Agradecemos tu ayuda para compartir nuestros artículos en referencia a las ciencias informáticas.

Solución:

Solución moderna:

let blob = await fetch(url).then(r => r.blob());

La URL puede ser una URL de objeto o una URL normal.

Como alude gengkev en su comentario anterior, parece que la mejor/única manera de hacer esto es con una llamada asíncrona xhr2:

var xhr = new XMLHttpRequest();
xhr.open('GET', 'blob:http%3A//your.blob.url.here', true);
xhr.responseType = 'blob';
xhr.onload = function(e) 
  if (this.status == 200) 
    var myBlob = this.response;
    // myBlob is now the blob that the object URL pointed to.
  
;
xhr.send();

Actualización (2018): para situaciones en las que se puede usar ES5 de manera segura, Joe tiene una respuesta más simple basada en ES5 a continuación.

Quizás alguien encuentre esto útil cuando trabaje con React/Node/Axios. Utilicé esto para mi función de carga de imágenes de Cloudinary con react-dropzone en la interfaz de usuario.

    axios(
        method: 'get',
        url: file[0].preview, // blob url eg. blob:http://127.0.0.1:8000/e89c5d87-a634-4540-974c-30dc476825cc
        responseType: 'blob'
    ).then(function(response)
         var reader = new FileReader();
         reader.readAsDataURL(response.data); 
         reader.onloadend = function() 
             var base64data = reader.result;
             self.props.onMainImageDrop(base64data)
         

    )

Agradecemos que quieras patrocinar nuestra labor exponiendo un comentario y valorándolo te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *