当前位置:资讯 > >正文

薄荷图床 上传文件API调用指南

接口地址:会员专用网址/api/upload/


(资料图片)

返回格式:JSON

请求方式:POST

默认QPS:30+

Github:https://github.com/chikuairi/bohetuchuang_api

请求参数

参数名称

类型

必选

描述

api_token

String

您的api_token,用于验证请求者身份。填写错误将导致请求失败,报402错误。

uploadedFile

String

要上传的文件,缺少该参数报406错误。

mode

Number(Int)、String

命名方式,可取值1,2,3。1:自动重命名;2:保留原文件名;3:自动重命名(短链接模式)。不填默认为自动重命名。

uploadPath

String

要上传的目录,不填默认为 年/月/日 目录。多级目录以 / 分隔

watermark

Number(Int)、String

是否开启水印,可取值1,0。 1:开启水印;0:关闭水印。不填默认为关闭水印。

请求示例

1.PHP(在后端请求是一种很好的方式,因为这样可以保护好你的api_token。)

new \CURLFile("/www/wwwroot/myProduct/demo.jpg"),// 如果使用这个方式请填写文件的绝对路径        "api_token" => "你的token",        "mode" => "命名方式",        "uploadPath" => "上传目录",        "watermark" => "是否开启水印"    ];    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL, $url);    curl_setopt($ch, CURLOPT_POST, 1);    curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);    $output = curl_exec($ch);    curl_close($ch);    // 打印调用结果    echo $output;    // 以下代码只是调用结果展示,复制代码后删掉或者注释掉下面内容才能运行    // 响应结果    {        "status":"success",        "statusCode":"200",        "resultData":"success:File uploaded",        "url":"返回的文件链接",        "originFileName":"原文件名称",        "lessurl":"不含https://前缀的链接"    } ?>

2.Python(在后端请求是一种很好的方式,因为这样可以保护好你的api_token。)

# 导入requests包    import requests# 此处仅提供一个简单的示例,具体实现起来方案有很多,可按需开发def python_demo():    url = "你的接口地址"    files = {"uploadedFile": ("demo.jpg", open("demo.jpg", "rb"), "image/jpeg")}    data = {"api_token": "你的token",            "mode": "命名方式",            "uploadPath": "上传目录",            "watermark": "是否开启水印",            }    res = requests.post(url, data=data, files=files)    print(res.text)python_demo()# 以下代码只是调用结果展示,复制代码后删掉或者注释掉下面内容才能运行# 响应结果{    "status":"success",    "statusCode":"200",    "resultData":"success:File uploaded",    "url":"返回的文件链接",    "originFileName":"原文件名称",    "lessurl":"不含https://前缀的链接"} 

3.Vue2原生+Axios(不推荐直接在公共项目的前端请求接口,因为这样会暴露你的api_token!)

// 此处仅提供一个简单的示例,具体实现起来方案有很多,可按需开发import Axios from "axios";export default {    methods:{        fileUpload(event){            console.log(event);                        let file = event.target.files            let formData = new FormData()            formData.append("uploadedFile", file[0])            formData.append("api_token", "你的token");            formData.append("mode", "命名方式");            formData.append("uploadPath", "上传目录");            formData.append("watermark", "是否开启水印");                        // 文件上传            Axios.post("你的接口地址", formData)            .then((res) => {                let data = res.data;                console.log(data);            }).catch((e)=>{                console.log(e);            })                  },            }}以下代码只是调用结果展示,复制代码后删掉或者注释掉下面内容才能运行响应结果{    "status":"success",    "statusCode":"200",    "resultData":"success:File uploaded",    "url":"返回的文件链接",    "originFileName":"原文件名称",    "lessurl":"不含https://前缀的链接"}

4.JQuery Ajax(不推荐直接在公共项目的前端请求接口,因为这样会暴露你的api_token!)

// 此处仅提供一个简单的示例,具体实现起来方案有很多,可按需开发    function getfilename(){            var uploadedFile = document.getElementById("boheimg").files;            var formData = new FormData();            for(var i=0; i"uploadedFile", uploadedFile[i]);            }            console.log(uploadedFile);            formData.append("api_token", "你的token");            formData.append("mode", "命名方式");            formData.append("uploadPath", "上传目录");            formData.append("watermark", "是否开启水印");             $.ajax({                 url: "你的接口地址",//传向后台服务器文件                 type: "post",    //传递方法                 data: formData,  //传递的数据                 dataType : "json",  //传递数据的格式                 contentType: false,                 processData: false,                 success: function (responseStr) {                    console.log(responseStr)                 },                 error: function () {                    alert("上传错误!");                 }             });        }        // 以下代码只是调用结果展示,复制代码后删掉或者注释掉下面内容才能运行        // 响应结果        {            "status":"success",            "statusCode":"200",            "resultData":"success:File uploaded",            "url":"返回的文件链接",            "originFileName":"原文件名称",            "lessurl":"不含https://前缀的链接"        }

返回值参数说明

参数名称

类型

描述

示例

status

String

返回的状态值。

success

statusCode

String

返回的状态码。

200

resultData

String

处理后返回的结果。

success:File uploaded

url

String

返回的文件链接

https://123.com/abc.jpg

lessurl

String

不含https://前缀的链接

123.com/abc.jpg

originFileName

String

原文件名称

abc.jpg

返回值示例

一般情况下都会返回下列状态码:

{            "status":"success",            "statusCode":"200",            "resultData":"success:File uploaded",            "url":"返回的文件链接",            "originFileName":"原文件名称",            "lessurl":"不含https://前缀的链接"}

返回状态码说明

状态码

描述

200

成功

401

失败:未开启API上传功能。(在后台开启即可)

402

失败:api_token错误。(请查证api_token)

403

失败:文件尺寸超限。(升级套餐或调整文件尺寸)

405

失败:未被支持的扩展名(文件格式)。

406

失败:没有选择文件就执行了上传操作。

407

失败:账号违规,API被封禁。

500

失败:其他错误或服务器内部错误。(请联系客服处理)

标签:

推荐阅读