前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >薄荷图床 上传文件API调用指南

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

原创
作者头像
用户10293409
发布2023-03-24 10:58:49
1.1K0
发布2023-03-24 10:58:49
举报
文章被收录于专栏:好用的软件

接口地址:会员专用网址/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。)

代码语言:javascript
复制
<?php
    // 此处仅提供一个简单的示例,具体实现起来方案有很多,可按需开发

    $url = "你的接口地址";

    // 定义POST DATA 数组
    $post_data = [
        'uploadedFile'=>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。)

代码语言:javascript
复制
# 导入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!)

代码语言:javascript
复制
// 此处仅提供一个简单的示例,具体实现起来方案有很多,可按需开发
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!)

代码语言:javascript
复制
// 此处仅提供一个简单的示例,具体实现起来方案有很多,可按需开发
    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

返回值示例

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

代码语言:javascript
复制
{
            "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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 请求示例
  • 返回值参数说明
    • 返回值示例
      • 返回状态码说明
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档