# SoonDesign 网页端服务器文件保存 API ## 功能说明 网页端默认将文件保存在浏览器缓存(localStorage/sessionStorage)中。通过部署这些 API 接口,可以实现将文件保存到服务器,实现真正的文件持久化。 ## 部署步骤 ### 1. 上传 API 文件 将 `api` 目录下的 PHP 文件上传到服务器的 `/api/` 目录(相对于网站根目录)。 例如,如果网站根目录是 `/www/wwwroot/soonWebsite/`,则: - `save_file.php` → `/www/wwwroot/soonWebsite/api/save_file.php` - `read_file.php` → `/www/wwwroot/soonWebsite/api/read_file.php` ### 2. 创建文件存储目录 创建用于存储 `.soon` 文件的目录: ```bash mkdir -p /www/wwwroot/soonWebsite/design/files chmod 755 /www/wwwroot/soonWebsite/design/files ``` ### 3. 配置 Nginx(如果需要) 确保 Nginx 配置允许访问 `/api/` 和 `/design/files/` 目录: ```nginx 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` ## 工作原理 1. **自动检测服务器环境**:网页端会自动检测是否在服务器环境(非 localhost/127.0.0.1) 2. **保存文件**:当用户保存文件时,如果是服务器环境,会自动调用 `save_file.php` 将文件上传到服务器 3. **读取文件**:当打开文件时,如果是服务器文件路径,会自动调用 `read_file.php` 从服务器读取 4. **降级处理**:如果服务器保存失败,会自动降级为浏览器下载 ## 文件存储位置 所有保存的 `.soon` 文件存储在: ``` /design/files/ ``` 文件访问路径为: ``` http://114.55.133.123:8888/design/files/文件名.soon ``` ## 安全说明 - API 接口已包含文件名清理,防止路径遍历攻击 - 建议在生产环境中添加身份验证(如 Token 验证) - 建议限制文件大小和类型 - 建议定期清理旧文件 ## 故障排除 ### 问题:保存时提示"保存失败" **可能原因:** 1. API 文件路径不正确 2. 文件存储目录权限不足 3. PHP 配置问题 **解决方法:** 1. 检查 API 文件是否在正确位置 2. 检查目录权限:`chmod 755 /www/wwwroot/soonWebsite/design/files` 3. 检查 PHP 错误日志 ### 问题:文件保存后找不到 **可能原因:** 1. 文件保存路径配置错误 2. Nginx 配置问题 **解决方法:** 1. 检查 `save_file.php` 中的 `$saveDir` 路径 2. 检查 Nginx 配置是否正确指向文件目录