首页 > 解决方案 > JavaScript,通过base64 url​​下载图片

问题描述

所以我有一个 url,它是 base-64 编码的。我需要创建 blob url 来下载这个文件。我无法解码那个 url,因为我需要隐藏真实的 url。它应该被编码。下一个代码不起作用,如果我打开 blob url,就会出现空白屏幕。

const res = await fetch('data:image/jpeg;base64,aHR0cHM6Ly9taXJvLm1lZGl1bS5jb20vbWF4Lzg3NS8xKnZadV9hdFd2aHdEcnBLNGEybWhha2cuanBlZw==');
const blob = await res.blob();
const myUrl= URL.createObjectURL(blob);

标签: javascriptimagedownloadbase64

解决方案


如果你想隐藏你的 url,你应该创建一个代理服务器,它就像一个 url 缩短器一样工作。Base64 更令人讨厌。

但是,如果要下载 base64 url​​,则必须先对其进行解码,然后再获取它。

fetch(atob("aHR0cHM6Ly9taXJvLm1lZGl1bS5jb20vbWF4Lzg3NS8xKnZadV9hdFd2aHdEcnBLNGEybWhha2cuanBlZw=="))
    .then(res => res.blob())
    .then(blob => {
        //whatever
    });

阅读有关atob () 和btoa () 的更多信息:

https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/atob


推荐阅读