gpt4 book ai didi

javascript - 在客户端读取 xz 文件

转载 作者:行者123 更新时间:2023-11-30 20:14:36 28 4
gpt4 key购买 nike

我在服务器上有很大的 json 文件,我用 xz 压缩了这些文件。我认为我最好请求它们,即压缩,并在客户端的 javascript 中解压缩它们。我正在尝试使用 LZMA-JS库,但我无法让它工作。

这是相关的 HTML 片段:

<script src="jquery-3.3.1.min.js"></script>
<script src="lzma-d-min.js"></script>
<script src="main.js"></script>

这是main.js的相关部分:

$.ajax({
type: 'POST',
processData: false,
contentType: false,
url: file_name+'.json.xz',
beforeSend: function() { element.prop("disabled", true); },
success: function(xz) {
// http://cdn.jwebsocket.org/lzma-js/1.3.7/demos/simple_demo.html
console.log(xz); // 1
LZMA.decompress(xz,
function on_finish(result, error) {
console.log(result); // 2
console.log(error); // 3
data = JSON.parse(result);
},
function on_progress(percent) { }
);
element.prop("disabled", false);
}
});

第一个 console.log 正确打印文件内容,至少根据魔数(Magic Number) �7zXZ 判断。第二个打印 null,第三个打印这个:

Error: corrupted input
at y (lzma-d-min.js:1)
at L (lzma-d-min.js:1)
at t (lzma-d-min.js:1)

我没有正确使用库吗?我可以在 Linux 上使用 xz 或在 python3 中使用 lzma 或在 C++ 中使用 boost::iostreams::lzma_decompressor 来毫无问题地解压相关文件.我找不到其他 JavaScript 库来尝试。

我愿意接受使用不同压缩格式的建议。

最佳答案

你在混淆格式。

XZ 是一种存档格式。 LZMA 是底层流压缩器。 LZMA-JS 只能解压缩 LZMA 流,不能解压缩 XZ 存档。

使用 lzma 命令行工具创建原始 LZMA 流。

关于javascript - 在客户端读取 xz 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52051019/

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