弄了半天,转换来转换去,就是转换不对,没有弄明白。
比如:
export async function downloadPikachu(): Promise<Blob | undefined> {
const options: AxiosRequestConfig = {
method: "GET",
// url: "https://static.wikia.nocookie.net/villainstournament/images/8/89/Pikachu.jpg/revision/latest?cb=20190528172002",
url: "https://static.wikia.nocookie.net/villainstournament/images/8/89/Pikachu.jpg",
headers: {}
};
try {
const res = await axios(options);
if (res.status === 200) {
console.log(res);
// TODO:
// const arrBuffer = res.data as ArrayBuffer;
// const int8Array = Array.from(new Uint8Array(arrBuffer));
// const blob = new Blob([arrBuffer], { type: "application/octet-stream" });
// const blob = new Blob([new Uint8Array(int8Array)]);
// return blob;
}
return undefined;
} catch (error) {
console.log(error);
return undefined;
}
}
p.s. 需要 Blob ,是因为后面还要用(这样 chrome 就能够根据 blob 下载文件了,相当于 save as 成一个文件)
const urlFile = window.URL.createObjectURL(blobData);
const a = document.createElement("a");
document.body.appendChild(a);
a.href = urlFile;
a.download = fileName;
a.click();
window.URL.revokeObjectURL(urlFile);
a.remove();
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.