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 字符,如 profilequestionbenefitauditchat;当前服务端不限制固定枚举
business_id string 业务 ID

上传成功后写入 tieup_upload_record,返回 upload_nostorage_providerobject_keyurlmime_typefile_hashsize_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_typesmax_size_config
  • 当前默认配置示例:允许 image/jpegimage/pngimage/webpvideo/mp4audio/mpegaudio/wavaudio/aac;大小限制示例为图片 10MB、视频 200MB、语音 50MB。后台调整七牛配置后,APP 上传限制同步变化。
  • 服务端按文件真实 MIME 校验,不使用写死扩展名白名单;扩展名只作为上传记录字段保存。
  • 上传记录按 upload_nostorage_provider + bucket + object_key 幂等写入;重复上传同一对象时返回已有记录并更新业务上下文。
  • 测试状态:已完成代码实现、PHP 语法检查和文档同步,待真实七牛配置和本地兜底上传联调。