2e6578247e
- lib/platform:网页 Electron 统一 bridge/web/electron,子目录 API 基路径、返回首页跳站点根、路径末尾斜杠兼容 - index/design*.web.html:网页入口,web.js 加缓存参数避免旧脚本缓存 - api:PHP 读写 soon;文档说明目录权限与 Nginx - lib/design*、lib/index:与 platformBridge 对接及网页侧逻辑 - 公共资源 JsBarcode/jr-qrcode;文档与 package/README/.gitignore 等同步更新 Co-authored-by: Cursor <cursoragent@cursor.com>
2.8 KiB
2.8 KiB
SoonDesign 网页端服务器文件保存 API
功能说明
网页端默认将文件保存在浏览器缓存(localStorage/sessionStorage)中。通过部署这些 API 接口,可以实现将文件保存到服务器,实现真正的文件持久化。
部署步骤
1. 上传 API 文件
将 api 目录下的 PHP 文件上传到服务器的 /api/ 目录(相对于网站根目录)。
例如,如果网站根目录是 /www/wwwroot/soonWebsite/,则:
save_file.php→/www/wwwroot/soonWebsite/api/save_file.phpread_file.php→/www/wwwroot/soonWebsite/api/read_file.php
2. 创建文件存储目录
创建用于存储 .soon 文件的目录:
mkdir -p /www/wwwroot/soonWebsite/design/files
chmod 755 /www/wwwroot/soonWebsite/design/files
3. 配置 Nginx(如果需要)
确保 Nginx 配置允许访问 /api/ 和 /design/files/ 目录:
location /api/ {
try_files $uri $uri/ =404;
}
location /design/files/ {
alias /www/wwwroot/soonWebsite/design/files/;
# 允许列出文件(可选)
autoindex off;
}
4. 测试 API
访问以下 URL 测试 API 是否正常工作:
- 保存文件:
http://114.55.133.123:8888/api/save_file.php - 读取文件:
http://114.55.133.123:8888/api/read_file.php?fileName=test.soon
工作原理
- 自动检测服务器环境:网页端会自动检测是否在服务器环境(非 localhost/127.0.0.1)
- 保存文件:当用户保存文件时,如果是服务器环境,会自动调用
save_file.php将文件上传到服务器 - 读取文件:当打开文件时,如果是服务器文件路径,会自动调用
read_file.php从服务器读取 - 降级处理:如果服务器保存失败,会自动降级为浏览器下载
文件存储位置
所有保存的 .soon 文件存储在:
/design/files/
文件访问路径为:
http://114.55.133.123:8888/design/files/文件名.soon
安全说明
- API 接口已包含文件名清理,防止路径遍历攻击
- 建议在生产环境中添加身份验证(如 Token 验证)
- 建议限制文件大小和类型
- 建议定期清理旧文件
故障排除
问题:保存时提示"保存失败"
可能原因:
- API 文件路径不正确
- 文件存储目录权限不足
- PHP 配置问题
解决方法:
- 检查 API 文件是否在正确位置
- 检查目录权限:
chmod 755 /www/wwwroot/soonWebsite/design/files - 检查 PHP 错误日志
问题:文件保存后找不到
可能原因:
- 文件保存路径配置错误
- Nginx 配置问题
解决方法:
- 检查
save_file.php中的$saveDir路径 - 检查 Nginx 配置是否正确指向文件目录