peixue-dev/peidu/Archive/一次性文件/[一次性]图片上传配置修复-2026-01-25.md

112 lines
2.9 KiB
Markdown
Raw Normal View History

# 图片上传配置修复
## 问题描述
用户反馈看到旧的图片URL格式
- `http://localhost:8080/uploads/images/2026/01/08/xxx.png`
- `http://example.com/xxx.jpg`
## 问题原因
1. **数据库旧数据**: 历史上传的图片使用旧URL格式不需要清理
2. **配置缺失**: `application.yml` 中缺少 `file.upload.url` 配置项
3. **旧代码兼容**: `LearningRecordServiceImpl` 中有旧的上传方法使用该配置
## 解决方案
### 1. 更新 application.yml
添加了 `file.upload.url` 配置项(兼容旧代码):
```yaml
file:
upload:
mode: remote
url-prefix: https://px.ddn-ai.cloud/uploads/ # 新系统使用
url: https://px.ddn-ai.cloud/uploads # 旧系统兼容
```
### 2. 当前上传流程
**新上传系统**(推荐使用):
```
小程序
→ http://localhost:8089/api/file/upload (本地后端)
→ FileUploadService.uploadFile()
→ 远程上传到 https://px.ddn-ai.cloud/api/file/upload/direct
→ 保存到 /www/wwwroot/px.ddn-ai.cloud/Image/
→ 返回 https://px.ddn-ai.cloud/uploads/20260125_xxx.jpg
```
**旧上传方法**(已废弃,但保留兼容):
```
LearningRecordServiceImpl.uploadFile()
→ 使用 file.upload.url 配置
→ 返回 https://px.ddn-ai.cloud/uploads/xxx/xxx/xxx.jpg
```
## 验证步骤
### 1. 重启后端服务
```bash
# 停止旧进程
# 重新运行后端
```
### 2. 测试上传功能
- 打开小程序陪伴员端
- 进入签到页面
- 上传一张图片
- 检查返回的URL格式
### 3. 期望结果
返回的URL应该是
```
https://px.ddn-ai.cloud/uploads/20260125_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.jpg
```
## 配置说明
### 新系统配置(推荐)
- **接口**: `/api/file/upload`
- **Service**: `FileUploadService`
- **配置项**: `file.upload.url-prefix`
- **URL格式**: `https://px.ddn-ai.cloud/uploads/20260125_xxx.jpg`
### 旧系统配置(兼容)
- **接口**: 无Service内部方法
- **Service**: `LearningRecordServiceImpl.uploadFile()`
- **配置项**: `file.upload.url`
- **URL格式**: `https://px.ddn-ai.cloud/uploads/images/20260125/xxx.jpg`
## 注意事项
1. **旧数据不影响**: 数据库中的旧URL是历史数据不影响新上传
2. **统一使用新接口**: 建议所有上传都使用 `/api/file/upload` 接口
3. **配置已兼容**: 新旧系统配置都已正确设置
## 后续工作
根据 `[一次性]小程序图片上传更新清单-2026-01-25.md`,还需要更新以下页面使用新的上传工具:
**高优先级**:
- [ ] 签退页面 (checkout.vue)
- [ ] 成长记录创建 (record-create.vue)
- [ ] 每日记录 (daily-record.vue)
**中优先级**:
- [ ] 管理师申请 (apply.vue)
- [ ] 陪伴员资料 (profile.vue)
**低优先级**:
- [ ] 视频上传 (upload.vue)
- [ ] 反馈创建 (create.vue)
## 完成状态
✅ 配置文件已更新
✅ 新上传系统已就绪
✅ 旧系统已兼容
⏳ 等待重启后端测试
⏳ 等待更新其他页面