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

Scratch下载目录修改、Node.js存储项目及相关文件定位技术问询

Scratch相关问题解答

1. 修改「将文件保存到电脑」的下载目录到任意指定位置

  • 网页版Scratch:网页端下载行为由浏览器控制,Scratch本身无法直接指定下载目录。你可以在浏览器设置中开启「下载前询问每个文件的保存位置」,之后每次点击Scratch的保存按钮,浏览器会弹出文件选择对话框,让你选择任意目标目录保存.sb3文件。
  • 桌面版Scratch:点击「将文件保存到电脑」时,默认会弹出系统的文件选择窗口,直接选中你需要的目录即可完成保存。如果未弹出窗口,检查系统或Scratch的设置项,确认没有强制固定下载路径。

2. 用Node.js将project.sb3保存至后端数据库时,访问文件的位置

网页版Scratch点击保存按钮时,是前端JavaScript生成.sb3格式的Blob对象,再通过创建<a>标签触发浏览器下载。要将文件传到Node.js后端,你需要:

  • 拦截保存按钮的点击事件,或者重写Scratch生成.sb3的方法,拿到生成的Blob对象(或ArrayBuffer格式的数据)。
  • 将Blob包装为FormData,通过Axios、Fetch等工具发送到你的Node.js后端接口。
  • 后端接收到FormData后,提取文件的二进制数据,直接存入支持二进制存储的数据库(如MongoDB的GridFS、PostgreSQL的bytea类型);也可以先将文件保存到服务器本地目录,再把文件路径存入数据库。

如果是自行部署的Scratch编辑器,可直接在源码的保存逻辑模块中修改,拿到生成的.sb3数据后直接发送请求,无需拦截浏览器的下载行为。

3. 找到Scratch中相关的编码与文件生成JS文件

Scratch核心代码为开源项目,相关文件位置如下:

  • 生成.sb3文件的JS文件:位于scratch-vm仓库的src/serialization/save-project-as-sb3.js,负责将Scratch项目序列化为.sb3格式的Zip包。
  • 生成.sb2文件的JS文件:对应scratch-vm仓库的src/serialization/save-project-as-sb2.js,处理旧版.sb2格式的序列化逻辑。
  • 默认目录相关编码:
    • 网页版无本地默认目录逻辑,下载路径完全由浏览器控制;
    • 桌面版(基于Electron开发)的默认下载目录配置,位于scratch-desktop仓库的主进程代码(如main.js)或前端设置模块中,负责处理Electron环境下的下载路径规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 05:08:32