You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pyodide文件系统Zip文件下载功能实现失败求助

Pyodide 下载Zip文件失败的修复方案

问题出在你用utf8编码读取二进制Zip文件——Zip是二进制格式,用文本编码读取会破坏原始数据结构,导致FileSaver无法识别有效文件。

修复步骤:

  • 读取文件时不要指定utf8编码,Pyodide的FS.readFile默认会返回Uint8Array类型的二进制数据
  • 将Uint8Array转换为Blob对象,并指定正确的MIME类型application/zip
  • 再用FileSaver的saveAs保存Blob

修正后的代码:

// 读取二进制Zip文件,返回Uint8Array
const fileData = pyodide.FS.readFile('/home/pyodide/assets/test.zip');
// 转换为符合要求的Blob对象
const zipBlob = new Blob([fileData], { type: 'application/zip' });
// 触发下载
saveAs(zipBlob, 'test.zip');

可选优化:读取前可以先检查文件是否存在,避免报错:

if (pyodide.FS.exists('/home/pyodide/assets/test.zip')) {
  // 执行上述下载逻辑
} else {
  console.error('指定的Zip文件不存在');
}

内容的提问来源于stack exchange,提问作者Peter Estiven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 19:30:50