# FastAPI HTTP 异常：请求实体过大

- **ID:** `python/fastapi-upload-file-size-limit`
- **领域:** python
- **类别:** config_error
- **验证级别:** ai_generated
- **修复率:** 80%

## 根因

上传的文件大小超过了 FastAPI 或服务器的限制

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| 3.9 | active | — | — |
| 3.10 | active | — | — |

## 解决方案

1. **使用 UploadFile 并设置最大大小** (90% 成功率)
   ```
   from fastapi import UploadFile, File
app = FastAPI()
@app.post('/upload')
async def upload(file: UploadFile = File(...)):
    if file.size > 10 * 1024 * 1024:
        raise HTTPException(413, '文件太大')
   ```
2. **配置服务器限制** (95% 成功率)
   ```
   uvicorn.run(app, limit_max_request_body=10*1024*1024)
   ```

## 无效尝试

- **在前端压缩文件但后端限制未改** — 压缩后仍可能超过限制，且质量下降 (60% 失败率)
- **忽略错误并重试上传** — 每次都会失败，浪费带宽 (90% 失败率)
