Skip to content

头像上传接口文档

用于实现用户头像上传功能,支持POST请求方式。参数需根据后台“用户令牌校验”的启用规则灵活选择,file_upload(头像文件)为必填项,应用签名直接从后台获取,同时需满足文件格式及账号、应用状态等前置校验要求。

请求地址 POST

http
https://nobase.cn/api/user/new_avatar

请求参数

参数名位置类型必选说明
appidformstring✅ 是应用ID,填写从开发者中心获取的应用唯一标识
file_uploadformfile✅ 是头像文件,支持JPG、PNG、GIF、WebP格式,最大5MB
signatureformstring✅ 是应用签名,直接从后台复制获取,无需手动生成
tokenformstring❌ 否用户令牌,仅在以下场景需传递:后台启用“用户令牌校验”且不使用账号密码验证;需为登录成功后获取的有效令牌
userformstring条件必选用户账号,仅在以下场景需填写:后台未启用“用户令牌校验”,或启用后仍选择账号密码验证;格式为纯数字(如手机号)
passformstring条件必选用户密码,仅当user为必填时同步填写;需与用户账号绑定的密码一致,格式为字母数字组合(不可含中文)

返回示例

成功响应(头像上传成功)

json
{
  "code": 200,
  "msg": "success",
  "data": "头像上传成功!"
}

失败响应(参数缺失/错误)

json
{
  "code": 204,
  "msg": "fail",
  "data": "接口参数错误:user和pass为必填项"
}

失败响应(文件格式/大小错误)

json
{
  "code": 405,
  "msg": "fail",
  "data": "仅支持JPG、PNG、GIF、WebP格式的图片"
}

失败响应(令牌/账号异常)

json
{
  "code": 404,
  "msg": "fail",
  "data": "用户账号密码错误!"
}

失败响应(上传权限限制)

json
{
  "code": 405,
  "msg": "fail",
  "data": "开发者账号已逾期,请缴费之后重试!"
}

返回数据结构

参数名类型说明
codenumber状态码:200=上传成功;204=参数缺失/错误;404=账号/令牌异常;405=文件格式/大小错误/权限限制
msgstring状态描述:success=成功,fail=失败
datastring响应数据:返回操作结果提示或错误原因,如“头像上传成功!”“文件大小不能超过5MB”

代码示例

javascript
// 1. 准备表单数据(未启用令牌校验,需传user和pass)
const formData = new FormData();
formData.append("appid", "your_app_id");
formData.append("signature", "signature_from_backend");
formData.append("user", "13800138000"); // 用户账号(纯数字)
formData.append("pass", "UserPass123"); // 用户密码
formData.append("file_upload", file); // 从文件选择框获取的文件对象

// 2. 发起POST请求
fetch("https://nobase.cn/api/user/new_avatar", {
  method: "POST",
  body: formData
})
.then(res => res.json())
.then(res => {
  res.code === 200 
    ? console.log("头像上传成功:", res.data) 
    : console.error("头像上传失败:", res.data);
})
.catch(err => console.error("请求异常:", err));
javascript
// 1. 准备表单数据(启用令牌校验,传token,无需user/pass)
const formData = new FormData();
formData.append("appid", "your_app_id");
formData.append("signature", "signature_from_backend");
formData.append("token", "valid_user_token"); // 登录获取的有效令牌
formData.append("file_upload", file); // 从文件选择框获取的文件对象

// 2. 发起POST请求
fetch("https://nobase.cn/api/user/new_avatar", {
  method: "POST",
  body: formData
})
.then(res => res.json())
.then(res => {
  res.code === 200 
    ? console.log("头像上传成功:", res.data) 
    : console.error("头像上传失败:", res.data);
})
.catch(err => console.error("请求异常:", err));
python
import requests

# 1. 准备文件和参数
files = {
    'file_upload': open('avatar.png', 'rb')  # 本地头像文件
}
data = {
    "appid": "your_app_id",
    "signature": "signature_from_backend",
    "user": "13900139000",
    "pass": "UserPass123"
}

# 2. 发起POST请求
url = "https://nobase.cn/api/user/new_avatar"
try:
    res_data = requests.post(url, data=data, files=files, timeout=10).json()
    print(f"结果:{res_data['data']}")
except requests.exceptions.RequestException as e:
    print(f"请求异常:{str(e)}")
python
import requests

# 1. 准备文件和参数
files = {
    'file_upload': open('avatar.jpg', 'rb')  # 本地头像文件
}
data = {
    "appid": "your_app_id",
    "signature": "signature_from_backend",
    "token": "valid_user_token"
}

# 2. 发起POST请求
url = "https://nobase.cn/api/user/new_avatar"
try:
    res_data = requests.post(url, data=data, files=files, timeout=10).json()
    print(f"结果:{res_data['data']}")
except requests.exceptions.RequestException as e:
    print(f"请求异常:{str(e)}")

注意事项

  1. 参数选择规则
    • 启用“用户令牌校验”:可二选一(仅传token,或传user+pass),推荐仅传token以减少敏感信息传递;
    • 未启用“用户令牌校验”:必须传user+pass,否则会返回参数错误。
  2. 文件格式要求
    仅支持JPG、PNG、GIF、WebP格式,文件大小不超过5MB,建议前端提前校验文件类型和大小(如通过accept="image/*"限制选择类型),避免上传失败。
  3. 文件上传方式
    必须使用multipart/form-data格式提交(表单需设置enctype="multipart/form-data"),不可用普通表单或JSON格式传递文件。
  4. 权限与状态校验
    接口会校验开发者账号是否逾期、应用是否正常(非审核/停用状态)、用户账号状态是否正常,异常时会返回对应提示,需提前确认相关配置正常。
  5. 安全提示
    • 生产环境必须使用HTTPS协议,避免文件传输过程中被篡改;
    • 头像上传成功后,建议前端主动刷新显示新头像(可通过用户信息接口重新获取头像URL);
    • 优先推荐启用“用户令牌校验”,降低账号密码泄露风险。