Minha página gera um URL como este: "blob:http%3A//localhost%3A8383/568233a1-8b13-48b3-84d5-cca045ae384f"
Como posso convertê-lo em um endereço normal?
Eu estou usando-o como um <img>
's src
atributo.
javascript
url
blob
Jacob
fonte
fonte
localhost
link. Em vez disso, descubra seu link público. (qual CDN você está usando?)Respostas:
Um URL que foi criado a partir de um JavaScript
Blob
não pode ser convertido em um URL "normal".Um
blob:
URL não se refere aos dados existentes no servidor, mas aos dados que seu navegador possui atualmente na memória, para a página atual. Não estará disponível em outras páginas, não estará disponível em outros navegadores e não estará disponível em outros computadores.Portanto, não faz sentido, em geral, converter um
Blob
URL em URL "normal". Se você quisesse um URL comum, teria que enviar os dados do navegador para um servidor e fazer com que o servidor os disponibilizasse como um arquivo comum.É possível converter um
blob:
URL emdata:
URL, pelo menos no Chrome. Você pode usar uma solicitação AJAX para "buscar" os dados doblob:
URL (mesmo que ela esteja apenas puxando-os da memória do seu navegador, não fazendo uma solicitação HTTP).Aqui está um exemplo:
data:
Os URLs provavelmente não são o que você entende por "normal" e podem ser problemáticos grandes. No entanto, eles funcionam como URLs normais, pois podem ser compartilhados; eles não são específicos para o navegador ou sessão atual.fonte
Not allowed to navigate top frame to data URL: data:text/plain;base64,...
erro. Recebo os dados, maswindow.location
não é permitido ...outra maneira de criar um url de dados a partir de um blob pode ser usando o canvas.
como o que eu vi no MDN, canvas.toDataURL é bem suportado por navegadores. (exceto ie <9, sempre ie <9)
fonte
Para aqueles que vieram aqui em busca de uma forma de baixar um blob url de vídeo / áudio, essa resposta funcionou para mim. Resumindo, você precisaria encontrar um arquivo * .m3u8 na página da web desejada por meio do Chrome -> guia Rede e colá-lo em um player VLC .
Outro guia mostra como salvar um stream com o VLC Player .
fonte
Como a resposta anterior disse, não há como decodificá-lo de volta para url, mesmo quando você tenta vê-lo no painel do Chrome Devtools, o url ainda pode estar codificado como blob.
Porém, é possível obter os dados, outra forma de obter os dados é colocá-los em uma âncora e baixá-los diretamente.
Insira isso na página que contém o URL do blob e clique no botão para obter o conteúdo.
Outra maneira é interceptar a chamada ajax por meio de um servidor proxy, então você pode ver o url da imagem verdadeira.
fonte