
# 【 203 base64图片上传接口】接口文档
**所属平台**: YesApi果创云
**接口地址**: `http://api.yesapi.net/?s=App.CDN.UploadImgByBase64`
**请求方式**: POST/GET

## 接口基本信息
- **功能描述**:  上传 为方便上传文件，可将待上传的文件二进制内容进行base64编码后上传，必须使用POST传递file参数，只是用POST请求方式还不行，一定要把file参数放到POST里，而不能拼到链接GET参数。上传后，可以在小白平台-数据-素材库查看已上传的图片文件。已经支持的格式：jpeg/jpg/gif/bmp/png/icon/svg
- **返回格式**: JSON

## 请求参数说明

### 系统参数（使用Query传递）
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|--------|
| s | string | 必填 | 接口服务名，固定为`App.CDN.UploadImgByBase64` |
| app_key | string | 必填 | 应用key，传入`你的app_key` |
| sign | string | 可选 | 公共参数接口签名，其中：                  关闭签名，默认，不需要签名，在接口签名设置关闭或开启接口签名。         静态签名，简单，固定的签名，点击获取。         动态签名，复杂，安全系数高，获取密钥，教程：如何生成签名，下载SDK开发包，在线测试对比签名。         定制签名，支持个性化签名签名算法定制。          |
| uuid | string | 可选 | 公共参数 UUID，当前登录的应用会员ID，即全局唯一用户ID，查看我的应用会员。传递此参数后，可以在开放平台查看每日活跃会员统计图表。uuid需要和token一起传递。 |
| token | string | 可选 | 公共参数 当前登录会员的会话凭证，可通过会员登录接口获得。uuid需要和token一起传递。 |
| return_data | string | 可选 | 公共参数 数据返回结构，其中：         return_data=0，返回完整的接口结果，示例：{"ret":200,"data":{"err_code":0,"err_msg":"","title":"Hi YesApi，欢迎使用小白开放接口！"},"msg":"V3.1.0 YesApi App.Hello.World","_t": 1657513450, "_auth": "9bcd54ff53e71a1d80d37c52bdfabf76"}；         return_data=1，返回简洁的接口结果，只返回data字段，结构简化一级，更扁平，示例：{"err_code":0,"err_msg":"V3.1.0 YesApi App.Hello.World","title":"Hi YesApi，欢迎使用小白开放接口！"}。          |
| yesapi_allow_origin | int | 可选 | 公共参数 是否允许跨域请求，1表示允许，0表示不允许。 |


### 业务参数（使用POST或Query传递）
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| file | string | 必填 | 此参数必须使用POST方式传递，且必须进行base64编码后传递，对待上传文件二进制内容进行basse64编码后的数据，此部分数据需要纳入签名。格式示例：file=data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw== |
| file_name | string | 必填 | 上传的文件名。例如：file_name=test.jpg |
| file_type | string | 可选 | 上传的文件类型，用于纪录备忘。例如：file_type=image/jpg |
| upload_full_file_path | string | 可选 | 【仅限使用自己的七牛CDN时生效】用于指定上传图片文件的完整路径，支持目录设置和原始的文件名，例如：upload_full_file_path=images/123.jpg。为空时由系统自动生成随机文件名 |


## 返回字段

| 返回字段	| 类型	| 说明 |
|--------|------|------|
| ret	| int | 接口状态码，`200`表示成功，`4xx`表示客户端非法请求，`5xx`表示服务端异常 |
| data | object/array/混合 | 接口返回的业务数据，由不同的API接口决定不同的数据返回字段和结构。当`return_data=1`时，接口只会返回此`data`字段。|
| msg | 字符串 | 提示信息，面向技术人员的帮助或错误提示信息，成功返回时为空字符串 |
| data.err_code | int | 操作状态码，0成功，1失败|
| data.err_msg | string | 错误提示信息，err_code非0时参考此提示信息|
| data.url | string | 成功上传时返回的图片URL，失败时为空|
| data.https_url | string | 成功上传时返回的HTTPS图片URL，失败或不支持HTTPS时为空|
| data.id | string | 成功上传时返回的文件ID，失败时为空|


## 请求示例

```bash
curl -X POST "http://api.yesapi.net/?s=App.CDN.UploadImgByBase64&app_key=YOUR_APP_KEY" \
  -H "Content-Type: application/json;charset=UTF-8" \
  -d "YOUR_POST_DATA_JSON"
```

成功返回示例（ret=200表示成功请求，data为成功后的业务数据）：
```json
{
    "ret": 200,
    "data": `成功返回的业务数据`,
    "msg": ""
}
```

失败返回示例：
```json
{
    "ret": 400,
    "data": [],
    "msg": "客户端非法请求：xxx参数错误"
}
```