如何在浏览器中使用JavaScript pako库解压缩文件?

如何在浏览器中使用JavaScript pako库解压缩文件?,javascript,gltf,pako,Javascript,Gltf,Pako,我正在制作带有a帧的.glb查看器。我的glb文件很大(大约400MB),所以我尝试加载压缩的zip文件(大约20MB)并在浏览器中解压缩。 但是,pako没有工作。。 错误日志显示“未知压缩方法” 我使用Windows默认功能(右键单击)压缩了一个文件。 我有什么不对吗 <script type="text/javascript" src="pako.min.js"></script> </head> <

我正在制作带有a帧的.glb查看器。我的glb文件很大(大约400MB),所以我尝试加载压缩的zip文件(大约20MB)并在浏览器中解压缩。 但是,pako没有工作。。 错误日志显示“未知压缩方法”

我使用Windows默认功能(右键单击)压缩了一个文件。 我有什么不对吗

    <script type="text/javascript" src="pako.min.js"></script>
</head>
<body>
<script>
AFRAME.registerComponent('compressed-zip-loader', {
    init: function () {
        try {
            fetch("2mCylinderEngine.zip").then(function (response) {
                response.blob().then(function (myBlob) {
                    try {
                        output = new pako.inflate(myBlob);
                    } catch  (err) {
                        console.log(err);  // unknown compression method
                    }
                });
             });
        } catch { 
            console.log("error");
        }
    }
});
</script>

AFRAME.registerComponent('compressed-zip-loader'{
init:函数(){
试一试{
获取(“2mCylinderEngine.zip”)。然后(函数(响应){
response.blob().then(函数(myBlob){
试一试{
输出=新包装充气(myBlob);
}捕捉(错误){
console.log(err);//未知的压缩方法
}
});
});
}捕获{
控制台日志(“错误”);
}
}
});

您需要将blob转换为数组缓冲区…请参见此处我将
response.blob()
更改为
response.arrayBuffer()
。。它不适用于错误“不正确的标题检查”。谢谢。许多web服务器都可以做一种叫做“动态压缩”的事情,即通过网络自动压缩负载。您可能不需要在客户端用JavaScript手动执行此操作,它只是HTTP协议的一个功能,您可以在服务器端启用。例如,如果您使用的是Microsoft IIS,则这将是相关的文档页面:大多数服务器都可以执行类似操作,而不仅仅是IIS。谢谢您的评论,艾马克。是的,但我想用JavaScript解压。谢谢