Appearance
图片上传接口文档
用于实现实现通用图片上传功能,支持POST请求方式。参数需根据后台“用户令牌校验”的启用规则灵活选择,file_upload(图片文件)为必填项,应用签名直接从后台获取,同时需满足文件格式及账号、应用状态等前置校验要求。
请求地址 POST
http
https://nobase.cn/api/user/upload_img请求参数
| 参数名 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| appid | form | string | ✅ 是 | 应用ID,填写从开发者中心获取的应用唯一标识 |
| file_upload | form | file | ✅ 是 | 图片文件,支持JPG、PNG、GIF、WebP格式,最大5MB |
| signature | form | string | ✅ 是 | 应用签名,直接从后台复制获取,无需手动生成 |
| token | form | string | 条件必选 | 用户令牌,仅在以下场景需传递:后台启用“用户令牌校验”且不使用账号密码验证;需为登录成功后获取的有效令牌 |
| user | form | string | 条件必选 | 用户账号,格式为纯数字(如手机号);仅在以下场景需填写:后台未启用“用户令牌校验”,或启用后仍选择账号密码验证 |
| pass | form | string | 条件必选 | 用户密码,格式为字母数字组合(不可含中文);仅当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天),请缴费之后重试!"
}返回数据结构
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | number | 状态码:200=上传成功;204=参数错误;403=账号格式错误;404=账号/令牌/开发者状态异常;405=文件错误/配置错误 |
| msg | string | 状态描述:如“上传成功”“更新失败”“fail” |
| data | string | 响应数据:成功时返回图片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)}")注意事项
参数选择规则
- 启用“用户令牌校验”:可二选一(仅传
token,或传user+pass),推荐仅传token以减少敏感信息传递; - 未启用“用户令牌校验”:必须传
user+pass,否则会返回参数错误。
- 启用“用户令牌校验”:可二选一(仅传
文件格式要求
仅支持JPG、PNG、GIF、WebP格式,文件大小不超过5MB,建议前端通过accept="image/jpeg,image/png,image/gif,image/webp"限制选择类型,并提前校验大小。权限与状态校验
接口会验证:- 开发者账号是否注册、状态是否正常、VIP是否逾期;
- 应用是否存在、配置是否完整、是否处于正常状态(非审核/停用);
- 用户账号是否注册、状态是否正常(仅
user+pass模式)。
安全提示
- 必须使用HTTPS协议传输,避免敏感信息泄露;
- 上传成功后返回的
data字段为图片直接访问URL,可用于前端展示; - 优先使用
token验证模式,减少账号密码明文传输风险。

