gpt4 book ai didi

node.js - Nodejs 从 base64 写入 zip 文件

转载 作者:搜寻专家 更新时间:2023-11-01 00:01:23 25 4
gpt4 key购买 nike

我正在将 base64 编码值写入 zip 文件。以下是我用于编写的代码:

var base64Data  =   base64_encoded_value;
base64Data += base64Data.replace('+', ' ');
binaryData = new Buffer(base64Data, 'base64').toString('binary');

fs.writeFile('test.zip', binaryData, "binary", function (err) {
console.log(err); // writes out file without error
});

它的工作和 test.zip 文件正在创建,问题是当我提取它时,它给了我以下错误:

End-of-central-directory signature not found.  Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of /home/user/Node/project/public/media/written/zip4045508057.zip or
/home/user/Node/project/public/media/written/zip4045508057.zip.zip, and cannot find /home/user/Node/project/public/media/written/zip4045508057.zip.ZIP, period.

有什么办法吗???

最佳答案

您必须将 base64 转换为 utf8 格式。然后您可以使用转换后的数据写入文件。

尝试使用以下函数将 base64 字符串转换为 utf8

/**
* @param b64string {String}
* @returns {Buffer}
*/
function _decodeBase64ToUtf8(b64string) {
var buffer;
if (typeof Buffer.from === "function") {
// Node 5.10+
buffer = Buffer.from(b64string, 'base64');
} else {
// older Node versions
buffer = new Buffer(b64string, 'base64');
}

return buffer;
}

我已经用它创建了使用 base64 数据的 ZIP 文件

关于node.js - Nodejs 从 base64 写入 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30483468/

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