Skip to content

图片上传接口文档

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

请求地址 POST

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

请求参数

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

返回示例

成功响应(图片上传成功)

json
{
  "code": 200,
  "msg": "上传成功",
  "data": "https://nobase.cn/api/user/avatar/avatar_6523c7d1f2b3.webp"
}

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

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

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

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

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

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

失败响应(权限/状态限制)

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

返回数据结构

参数名类型说明
codenumber状态码:200=上传成功;204=参数错误;403=账号格式错误;404=账号/令牌/开发者状态异常;405=文件错误/配置错误
msgstring状态描述:如“上传成功”“更新失败”“fail”
datastring响应数据:成功时返回图片URL,失败时返回错误原因

代码示例

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/upload_img", {
  method: "POST",
  body: formData
})
.then(res => res.json())
.then(res => {
  if (res.code === 200) {
    console.log("图片上传成功,地址:", res.data);
  } else {
    console.error("上传失败:", res.data);
  }
})
.catch(err => console.error("请求异常:", err));
javascript
// 1. 准备表单数据(启用令牌校验,仅传token)
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/upload_img", {
  method: "POST",
  body: formData
})
.then(res => res.json())
.then(res => {
  if (res.code === 200) {
    console.log("图片上传成功,地址:", res.data);
  } else {
    console.error("上传失败:", res.data);
  }
})
.catch(err => console.error("请求异常:", err));
python
import requests

# 1. 准备文件和参数
files = {
    'file_upload': open('image.png', 'rb')  # 本地图片文件
}
data = {
    "appid": "your_app_id",
    "signature": "signature_from_backend",
    "user": "13900139000",  # 纯数字账号
    "pass": "UserPass123"   # 字母数字组合密码
}

# 2. 发起POST请求
url = "https://nobase.cn/api/user/upload_img"
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('image.jpg', 'rb')  # 本地图片文件
}
data = {
    "appid": "your_app_id",
    "signature": "signature_from_backend",
    "token": "valid_user_token"  # 有效用户令牌
}

# 2. 发起POST请求
url = "https://nobase.cn/api/user/upload_img"
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/jpeg,image/png,image/gif,image/webp"限制选择类型,并提前校验大小。

  3. 权限与状态校验
    接口会验证:

    • 开发者账号是否注册、状态是否正常、VIP是否逾期;
    • 应用是否存在、配置是否完整、是否处于正常状态(非审核/停用);
    • 用户账号是否注册、状态是否正常(仅user+pass模式)。
  4. 安全提示

    • 必须使用HTTPS协议传输,避免敏感信息泄露;
    • 上传成功后返回的data字段为图片直接访问URL,可用于前端展示;
    • 优先使用token验证模式,减少账号密码明文传输风险。