Table of Contents
4.8 上传文件【未授权拦截通过,待登录态联调】
POST /tieup/api/v1/files
请求类型:multipart/form-data
请求体示例:
POST /tieup/api/v1/files
Content-Type: multipart/form-data
file=@demo.png
business_module=profile
business_id=10001
聊天素材上传示例:
POST /tieup/api/v1/files
Content-Type: multipart/form-data
file=@chat-image.png
business_module=chat
business_id=10001
请求字段:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
file |
file | 是 | 上传文件,支持图片、视频、语音;允许 MIME 和大小限制以后端七牛配置为准 |
business_module |
string | 是 | 业务模块标识,最大 50 字符,如 profile、question、benefit、audit、chat;当前服务端不限制固定枚举 |
business_id |
string | 否 | 业务 ID |
上传成功后写入 tieup_upload_record,返回 upload_no、storage_provider、object_key、url、mime_type、file_hash、size_byte。
业务模块说明:
| business_module | 含义 |
|---|---|
profile |
用户或艺人资料相关素材,如头像、相册、个人介绍音频等 |
question |
付费提问、追问、回答相关附件 |
benefit |
福利配置、福利展示或福利兑换相关素材 |
audit |
内容审核相关素材或审核补充材料 |
chat |
聊天消息相关素材,如图片、语音、视频消息文件 |
鉴权:需要 Authorization: Bearer <access_token>。
响应字段:
| 字段 | 类型 | 说明 |
|---|---|---|
record_id |
integer | 上传记录 ID |
upload_no |
string | 上传流水号 |
storage_provider |
string | 存储供应商 |
bucket |
string | 存储空间或本地存储标识 |
object_key |
string | 存储对象 Key |
url |
string | 资源访问 URL |
origin_name |
string | 原始文件名 |
mime_type |
string | 服务端识别的 MIME 类型 |
file_ext |
string | 文件扩展名,仅用于记录展示 |
file_hash |
string | 文件 hash |
size_byte |
integer | 文件大小,单位字节 |
business_module |
string | 业务模块 |
business_id |
string | 业务 ID |
user_id |
integer/null | 上传用户 ID |
status |
integer | 上传记录状态:1=正常,2=删除,3=上传失败 |
响应示例:
{
"code": 200,
"message": "成功",
"data": {
"record_id": 10001,
"upload_no": "UP202606170001",
"storage_provider": "qiniu",
"bucket": "tieup-public",
"object_key": "2026-06-17/550e8400-e29b-41d4-a716-446655440000.png",
"url": "https://cdn.example.com/2026-06-17/550e8400-e29b-41d4-a716-446655440000.png",
"origin_name": "demo.png",
"mime_type": "image/png",
"file_ext": "png",
"file_hash": "9e107d9d372bb6826bd81d3542a419d6",
"size_byte": 123456,
"business_module": "profile",
"business_id": "10001",
"user_id": 20001,
"status": 1
}
}
说明:
- 服务端复用 MineAdmin 附件上传能力,七牛启用时走七牛服务端直传,七牛未启用时按本地存储兜底;无论是否启用七牛,上传类型和大小都读取后台七牛配置中的
allow_mime_types与max_size_config。 - 当前默认配置示例:允许
image/jpeg、image/png、image/webp、video/mp4、audio/mpeg、audio/wav、audio/aac;大小限制示例为图片 10MB、视频 200MB、语音 50MB。后台调整七牛配置后,APP 上传限制同步变化。 - 服务端按文件真实 MIME 校验,不使用写死扩展名白名单;扩展名只作为上传记录字段保存。
- 上传记录按
upload_no或storage_provider + bucket + object_key幂等写入;重复上传同一对象时返回已有记录并更新业务上下文。 - 测试状态:已完成代码实现、PHP 语法检查和文档同步,待真实七牛配置和本地兜底上传联调。