薄荷图床 上传文件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 | 失败:其他错误或服务器内部错误。(请联系客服处理) |