first commit

This commit is contained in:
2026-06-03 10:09:03 +08:00
commit 81f5039458
6266 changed files with 188236 additions and 0 deletions
+122
View File
@@ -0,0 +1,122 @@
# 快速修复:请求体为空问题
## 问题
```
POST /platform/qiniu/save 400
{"code": 400, "msg": "参数解析失败: 请求体为空"}
```
## 快速修复步骤
### 1. 重启后端服务(已修改配置)
```bash
systemctl restart go-api
```
### 2. 查看服务状态
```bash
systemctl status go-api
```
预期输出:
```
● go-api.service - Go API Server
Loaded: loaded
Active: active (running)
```
### 3. 查看日志
```bash
tail -f /www/wwwroot/api.yunzer.cn/go.log
```
### 4. 测试上传
1. 登录系统
2. 进入软件升级页面
3. 上传一个文件
### 5. 观察日志输出
应该看到:
```
SaveFileRecord 请求体长度: xxx
SaveFileRecord 请求体内容: {"key":"...","hash":"...","size":...}
```
## 已修改的文件
`go/main.go` - 添加 `beego.BConfig.CopyRequestBody = true`
`go/conf/app.conf` - 添加 `copyrequestbody = true`
`go/controllers/qiniu_upload.go` - 添加调试日志
## 如果还是失败
### 检查 1: 服务是否重启成功
```bash
systemctl status go-api
```
如果失败,查看错误:
```bash
journalctl -u go-api -n 50
```
### 检查 2: 配置是否生效
查看日志中是否有请求体内容输出。如果没有,说明配置未生效。
### 检查 3: 前端请求是否正确
打开浏览器开发者工具,查看 Network 标签:
- 请求方法:POST
- Content-Type: application/json
- 请求体:应该有 JSON 数据
## 完整上传流程
```
1. 前端上传文件到七牛云 ✓
2. 七牛云返回文件信息 ✓
{
"key": "2026/04/09/xxx.exe",
"hash": "xxx",
"size": 60742452
}
3. 前端调用 /platform/qiniu/save ← 这里失败了
POST /platform/qiniu/save
Body: {
"key": "...",
"hash": "...",
"size": ...,
"name": "...",
"mimeType": "...",
"cate": 0
}
4. 后端保存到数据库 ← 修复后应该成功
5. 返回文件 URL
```
## 修复原理
Beego 框架默认不复制请求体,需要启用 `CopyRequestBody`
```go
// 修复前
c.Ctx.Input.RequestBody // 空的
// 修复后(启用 CopyRequestBody
c.Ctx.Input.RequestBody // 包含请求体数据
```
## 更新时间
2026-04-09