gpt4 book ai didi

javascript - JS : Download zip file from a string with Javascript

转载 作者:行者123 更新时间:2023-11-30 09:20:54 25 4
gpt4 key购买 nike

我想从 Ajax 请求中接收一个字符串形式的 zip 文件,然后将其保存在内存中,以便在必要时可以多次下载它,以便只发送一个请求。

我试着用这个下载它:

zip_string = 'PK etc.'

function download(filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);

element.style.display = 'none';
document.body.appendChild(element);

element.click();

document.body.removeChild(element);
}

// Start file download.
download("zip1.zip", zip_string);

它以 zip 的形式通过,但随后显然出现了问题,因为它打不开。谁能看出我做错了什么?

最佳答案

我通过在发送之前在服务器上将 zip 文件字符串编码为 base64 解决了这个问题。

with open(file, "rb") as f:
bytes = f.read()
encoded = base64.b64encode(bytes)

然后在 JS 中我指定它是 base64:

zip_string = 'UEsDBBQAAAAIANQzCU0J56mLPAIAAD4VAAAOAAAA etc.'

function download(filename, data) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;base64,' + data);
element.setAttribute('download', filename);

element.style.display = 'none';
document.body.appendChild(element);

element.click();

document.body.removeChild(element);
}

// Start file download.
download("zip1.zip", zip_string);

关于javascript - JS : Download zip file from a string with Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51759103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com