Saltar al contenido

Convierta la URL de blob en una URL normal

Solución:

Una URL creada a partir de JavaScript. Blob no se puede convertir a una URL “normal”.

A blob: La URL no se refiere a los datos que existen en el servidor, se refiere a los datos que su navegador tiene actualmente en la memoria, para la página actual. No estará disponible en otras páginas, no estará disponible en otros navegadores y no estará disponible en otras computadoras.

Por tanto, no tiene sentido, en general, convertir un Blob URL a una URL “normal”. Si quisiera una URL normal, tendría que enviar los datos desde el navegador a un servidor y hacer que el servidor lo hiciera disponible como un archivo normal.

Es posible convertir un blob: URL en un data: URL, al menos en Chrome. Puede utilizar una solicitud AJAX para “recuperar” los datos del blob: URL (a pesar de que en realidad solo lo está sacando de la memoria de su navegador, no haciendo una solicitud HTTP).

He aquí un ejemplo:

var blob = new Blob(["Hello, world!"], { type: 'text/plain' });
var blobUrl = URL.createObjectURL(blob);

var xhr = new XMLHttpRequest;
xhr.responseType="blob";

xhr.onload = function() {
   var recoveredBlob = xhr.response;

   var reader = new FileReader;

   reader.onload = function() {
     var blobAsDataUrl = reader.result;
     window.location = blobAsDataUrl;
   };

   reader.readAsDataURL(recoveredBlob);
};

xhr.open('GET', blobUrl);
xhr.send();

data: Es probable que las URL no sean lo que usted quiere decir con “normal” y pueden ser problemáticamente grandes. Sin embargo, funcionan como URL normales en el sentido de que se pueden compartir; no son específicos del navegador o la sesión actual.

Otra forma de crear una URL de datos a partir de una URL de blob puede ser utilizando canvas.

var canvas = document.createElement("canvas")
var context = canvas.getContext("2d")
context.drawImage(img, 0, 0) // i assume that img.src is your blob url
var dataurl = canvas.toDataURL("your prefer type", your prefer quality)

como lo que vi en mdn, canvas.toDataURL es compatible con los navegadores. (excepto ie <9, siempre ie <9)

Para aquellos que vinieron aquí buscando una manera de descargar un video / audio de URL de blob, esta respuesta funcionó para mí. En resumen, necesitaría encontrar un archivo * .m3u8 en la página web deseada a través de Cromo -> Pestaña de red y pégalo en un Reproductor de VLC.

Otra guía le muestra cómo guardar una transmisión con VLC Player.

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