文件上传
上传文件的接口。
上传文件
上传单个或多个文件。
接口信息
- 请求路径:
POST /api/upload - 认证方式: 需要认证
- 内容类型:
multipart/form-data
请求头
| 参数名 | 说明 |
|---|---|
| Authorization | Bearer Token |
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| files | file | 是 | 文件(支持多张) |
请求示例
bash
# 上传单个文件
curl -X POST http://localhost:3000/api/upload \
-H "Authorization: Bearer your-jwt-token" \
-F "files=@image.jpg"
# 上传多个文件
curl -X POST http://localhost:3000/api/upload \
-H "Authorization: Bearer your-jwt-token" \
-F "files=@image1.jpg" \
-F "files=@image2.png"响应示例
json
{
"success": true,
"data": [
{
"id": 1,
"filename": "image.jpg",
"url": "https://example.com/uploads/image.jpg",
"size": 102400,
"mimeType": "image/jpeg",
"createdAt": "2024-01-15T10:00:00.000Z"
},
{
"id": 2,
"filename": "image2.png",
"url": "https://example.com/uploads/image2.png",
"size": 204800,
"mimeType": "image/png",
"createdAt": "2024-01-15T10:00:00.000Z"
}
]
}响应字段
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | number | 文件 ID |
| filename | string | 文件名 |
| url | string | 文件访问 URL |
| size | number | 文件大小(字节) |
| mimeType | string | MIME 类型 |
| createdAt | string | 上传时间 |
错误响应
| HTTP 状态码 | 说明 |
|---|---|
| 401 | 未登录或 Token 无效 |
| 413 | 文件过大 |
| 415 | 不支持的文件类型 |
| 500 | 服务器错误 |
文件限制
- 单文件最大 10MB
- 支持的图片格式:jpg, jpeg, png, gif, webp
- 支持的文档格式:pdf, doc, docx, xls, xlsx
- 支持的压缩格式:zip, rar
存储位置
上传的文件默认存储在 /public/uploads 目录下,生产环境建议使用云存储(如阿里云 OSS、腾讯云 COS)。
安全说明
- 上传前验证文件类型和大小
- 文件名会自动重命名防止冲突
- 敏感文件类型会被自动过滤