Skip to content

文件上传

上传文件的接口。

上传文件

上传单个或多个文件。

接口信息

  • 请求路径: POST /api/upload
  • 认证方式: 需要认证
  • 内容类型: multipart/form-data

请求头

参数名说明
AuthorizationBearer Token

请求参数

参数名类型必填说明
filesfile文件(支持多张)

请求示例

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"
    }
  ]
}

响应字段

字段名类型说明
idnumber文件 ID
filenamestring文件名
urlstring文件访问 URL
sizenumber文件大小(字节)
mimeTypestringMIME 类型
createdAtstring上传时间

错误响应

HTTP 状态码说明
401未登录或 Token 无效
413文件过大
415不支持的文件类型
500服务器错误

文件限制

  • 单文件最大 10MB
  • 支持的图片格式:jpg, jpeg, png, gif, webp
  • 支持的文档格式:pdf, doc, docx, xls, xlsx
  • 支持的压缩格式:zip, rar

存储位置

上传的文件默认存储在 /public/uploads 目录下,生产环境建议使用云存储(如阿里云 OSS、腾讯云 COS)。

安全说明

  • 上传前验证文件类型和大小
  • 文件名会自动重命名防止冲突
  • 敏感文件类型会被自动过滤