薄荷图床LOGO

薄荷图床

薄荷图床由承德新擎网络科技有限公司运营。

截至目前,已累计存储超1亿个文件,为用户提供了超过10亿次外链服务。

关于我们 了解我们的运营理念和营运方式

帮助中心 遇到问题?快速得到答案

更新日志 来看看最近更新了哪些功能

企业资质 资质齐全,使用更放心

数据安全 多重防护策略,给文件更安全的家

数据中心 全球节点部署,CDN加速

图片处理类工具
视频处理类工具
文本处理类工具

图片无损压缩 批量无损压缩图片大小

Favicon生成 生成网站fav站标

提取Exif信息 提取图片的Exif信息

VDAT转MP4 快速将VDAT文件转为可播放的MP4

广告法极限词检测 AI智能检测宣传语中被广告法限制的词汇

帮助中心

👍大多数问题都能在这找到答案

  • 免费版 上传相关问题
  • 免费版 账号相关问题
  • 免费版 支持上传的文件格式
  • 通用 查看文件相关问题
  • 通用 跨境电商使用相关问题
  • 通用 短信营销使用相关问题
  • 技巧 快速从表格批量提取图片
  • 会员版 支持上传的文件格式
  • 会员版 多人同时使用
  • 会员版 子账号相关问题
  • 会员版 自定义域名相关问题
  • 会员版 自定义水印相关问题
  • 会员版 存储空间相关问题
  • 会员版 删除文件相关问题
  • 会员版 更换链接里的文件
  • 会员版 套餐升级相关问题
  • 会员版 导出链接相关问题
  • 会员版 设定文件夹
  • 会员版 API相关问题
  • 会员版 API文档

免费版 - 上传相关问题

本地文件 上传教程

请参考:本地文件上传

URL链接(链接转链接) 上传教程

请参考:URL链接上传

Base64 上传教程

请参考:Base64编码上传

为什么使用免费版上传速度不理想?

首先对您表示抱歉,免费版由于很多恶意用户违规利用,上传违规文件,对薄荷图床平台造成了很大威胁,因此在某些时段我们可能会进行多重AI鉴定违规,可能导致上传速度较慢。

同时免费版由于使用人数较多,大家共用同一个接口,也会对速度有影响。

如果您对上传速度有较高要求,可以开通会员,不受AI审核影响。

免费版 - 账号相关问题

如何注册账号

免费版不需要登录或注册即可使用。如需开通会员账号,请点击:开通会员

没有账号,怎么知道我是谁?

薄荷图床目前依据IP地址来识别用户身份。

显示我的IP地址被封禁,怎么办?

IP地址被封禁,通常是由于涉及《用户协议》或国家法律法规严格禁止的行为,因此被封禁。如您认为系统误封或对封禁处置有异议,请通过首页被封禁界面所示的邮箱进行申诉。

IP地址被封禁,通常会持续多久?

IP地址被封禁,通常按《用户协议》的规定,永久封禁。

通用 - 查看文件相关问题

不同文件的展示效果有什么区别?

如您在浏览器直接打开文件链接,不同格式的文件会被浏览器以不同效果显示,请参考:查看/下载文件

免费版如何查看上传记录?

免费版不支持查看上传记录,请妥善保存链接。

会员版如何查看上传记录?

请打开您的专用网址,点击左上角的管理后台按钮,登录管理后台查看历史上传的文件,还可以在后台再次导出TXT格式或表格格式排版的链接。

免费版 - 支持上传的文件格式

免费版支持上传什么格式的文件?

图片:JPG、JPEG、PNG、GIF、WebP、BMP、SVG、ICO 等

文档:DOC、DOCX、XLS、XLSX、PPT、TXT 等

音频:MP3 等

视频:暂不支持

压缩包:暂不支持

通用 - 跨境电商使用相关问题

薄荷图床支持上传到什么跨境电商平台?

薄荷图床本身不对链接做任何限制,您可以把您的链接上传到您想上传的任何平台。

跨境电商平台上传问题答疑

情况1:提示超时错误(Time out)

这种情况下请首先用浏览器打开您上传的图片链接,看下是否能正常打开,如果能够正常打开,说明图片链接是没有问题的。

可能导致问题出现的原因如下:

(1) 跨境电商平台或者ERP平台的上传接口不稳定,比如高峰期很容易出现部分图片上传失败的情况。

(2) 国家重大活动的情况下, 中国与国际的网络通信会有一定影响,可能导致跨境电商平台无法访问到国内的网络,导致链接拉取失败,一般活动结束后就会恢复。

(3) 账号被相关平台关闭了上传权限。

(4) 单次上传文件过多,电商平台的接口短时间内无法承受或认为遭受了攻击,拒绝了上传请求,导致超时。

(5) 部分跨境电商的上传接口仅支持http协议,请联系电商平台确认是否是协议问题。(亚马逊可能返回错误代码20000或20014)。薄荷图床会员版支持http和https双协议,可以自由切换使用。

(6) 文件名尽量避免使用空格和非字母数字字符和中日文,如$、@、?、&、* 等。

(7) 沃尔玛上传失败可能是因为域名不在其白名单中,请开case联系他们的客服加白名单。

建议多尝试几次,或者设每次选择少量图片尝试能不能上传或者稍后再试。 超时原因导致的上传失败请直接在电商平台开case联系相关电商平台的客服确认。

情况2:提示链接不存在(404 NOT FOUND)

(1) 这种情况一般是上传了错误的链接,或者链接在表格中被破坏了格式,比如有的表格会自动在链接后面加上一个小数点或者空格或回车,典型表现是在表格中点开链接,跳转到浏览器后,链接末尾多出了"%0a"字符,这样就会导致链接失效,请仔细检查链接情况。

(2) 请确认链接是否正确,或者链接所指向的文件是否被删除了。

(3) 如果您使用的是免费版,请确认文件的上传时间,免费版的链接有效期只有三天,超出三天后链接会失效。

提示链接不存在请直接联系薄荷图床客服,不用联系电商平台。

情况3:图片上传到平台成功了,但不显示在店铺

这种情况一般是电商平台的网络缓存问题,一般稍等一会即可显示。

也有可能是商品正在审核,审核通过后即可正常显示。

此种情况请稍等十五分钟,如果还是不显示请直接联系相关电商平台的客服确认。

情况4:表格里填写了多张图片,但上传后只显示一张

这种情况一般表格格式的问题。

请仔细核对自己表格的格式是否完全符合电商平台所要求的格式(比如电商平台要求横向排列的链接,而自己表格中提交的是竖向排列的链接)。

如核对没有问题还是无法解决,请仔细检查每条链接的末尾是否有多余的字符(空格或回车)。

此种情况请直接在电商平台确认表格格式规则。

情况5:未提示错误原因,但就是上传失败了

这种情况请联系电商平台的客服,确认他们所接受的图片格式,比如部分平台只接受jpeg格式的产品图。也可能是其他的原因,请直接联系电商平台的客服确认。

通用 - 短信营销使用相关问题

如何正确在群发短信中使用链接?

1. 建议移除 https:// 前缀

在薄荷图床中生成的短网址默认带有 https:// 前缀,其实在短信营销的场景下,完全可以去掉这个前缀,来进一步减少链接的长度,节省更多的字符,降低成本。薄荷图床会员版自带短网址功能。

2. 在短信中,链接的前后要加上空格

在短信营销人员中最常见的一个错误就是,发短信的时候没有给链接和文字之间加上空格,这样就导致了手机系统将后面的文字也会当成链接的一部分,造成所谓的链接打不开,链接错误等情况。

只要在链接的前后各加上一个空格,即可避免这种情况的出现。

3. 群发之前请务必先进行测试

在您大批量投放营销内容之前,请务必先少量群发或内部群发进行效果测试,避免例如上述的忘记加空格导致链接打不开,以及排版不正确等情况出现。

薄荷图床建议您群发之前先进行少量测试,可以对多个品牌的手机进行短信测试,来查看效果,确定没问题后再群发。

短信发送链接后链接打不开

情况1:短信链接格式错误

在短信营销人员中最常见的一个错误就是,发短信的时候没有给链接和文字之间加上空格,这样就导致了手机系统将后面的文字也会当成链接的一部分,造成所谓的链接打不开,链接错误等情况。

只要在链接的前后各加上一个空格,即可避免这种情况的出现。

情况2:链接失效

果您使用的是免费版,请确认文件的上传时间,免费版的链接有效期只有三天,超出三天后链接会失效。

如果您使用的是会员版,请确保您没有删除链接所对应的文件。

技巧 - 快速从表格批量提取图片

如何从表格中批量提取图片上传到薄荷图床?

表格(xlsx)文件其实只是一种特殊的压缩包,我们可以非常方便地提取其中的图片。

1. 将您的表格文件的后缀修改为 rar。

2. 修改为 rar 文件后,将其解压。

3. 解压后,可以看到一个名称为 xl 的文件夹。

4. 打开 xl 文件夹后,可以看到名称为 media 的文件夹,打开这个 media 文件夹即可看到这个表格中所包含的所有图片。

会员版 - 支持上传的文件格式

会员版支持上传什么格式的文件?

任何套餐都支持上传如下格式的文件:

图片:JPG、JPEG、PNG、GIF、WebP、BMP、SVG、ICO、JFIF、HEIC、EMF、TGA、PSD、AI、TIFF、TIF、PCX、EMF、AVIF、PSB 等

文档:DOC、DOCX、XLS、XLSX、PPT、TXT、CSV、PDF、RTF、JSON、OFD、MD、SQL、CSS、VTT、TEX、RMD、ASS、TTF、YAML 等

音频:MP3、AAC、FLAC 等

视频:MP4、AVI、M4V、MOV、FLV 等

压缩包:ZIP、RAR、TAR、JAR、7Z、GZ、WIN、ROM 等

会员版 - 多人同时使用

会员版是否支持多人同时使用?

薄荷图床会员版支持多人/多设备同时使用。

支持登录态共存(即多人多设备同时登陆一个账号)。

虽然支持多人多设备同时使用,但如果是多人使用,非常建议开通带有子账号功能的套餐,这样比较安全,可以实现权限隔离。如您将主账号共享给他人,他人将可以登录后台进行管理操作以及文件操作,由此造成的任何损失,薄荷图床不对此负责。

子账号的问题可以参考:会员版 - 子账号相关问题

会员版 - 子账号相关问题

哪些类型的套餐支持子账号功能?

目前,除了轻量年度版套餐以外均支持子账号功能。

主账号 与 子账号 的概念

在您购买薄荷图床会员之后,您将获得一个初始账号密码,这个账号密码是您的主账号,拥有您会员的一切权限,包括文件上传,后台管理,配置修改,操作审计等。

主账号是您账号的基础,您账号的会员有效期、会员等级、余额、发票、信用评级、联系方式等都与主账号直接绑定。

同时,您可以为您的员工、同事、朋友等创建子账号。子账号仅允许登录前台上传文件,不允许登录后台,没有后台管理,配置修改,操作审计等功能。

子账号的目的是,为您不希望具备管理权限的第三者开启一个仅允许上传文件的通道,并且您可以在后台的【上传日志】中对子账号上传记录进行溯源,可以查询到文件的上传者。非常适合企业、团队使用。

创建子账号

首先,登录您会员的管理后台,点击右上角的设置,再点击新增子账号

输入子账号的账号名称和密码后,点击新增

新增成功后,会自动跳转到管理子账号的页面,在这里可以查看以及管理您的子账号。新增成功后即可使用子账号登录您的会员首页上传文件,并且使用子账号上传的文件可以在后台的上传日志功能中进行溯源。

管理子账号

在后台,点击页面右上角的设置,再点击管理子账号即可看到子账号列表,点击对应的子账号右侧的编辑按钮,即可对子账号进行管理。

例如,这里将【test_0001】子账号的【是否允许登录】选项修改为禁止,这个子账号就无法再登录图床,除非您在后台中将其改为允许。

请注意:将子账号禁止登录后,仍会占用子账号数量限制的额度,如需释放额度,请使用删除子账号功能。

删除子账号

通常情况下,如您想要暂时禁用一个子账号,并需要后期恢复使用的情况下, 只需要将其【是否允许登录】选项改为禁止就可以了,等到后期需要使用的时候再改成允许。

而如果您确定一个子账号将永久不再使用,您可以直接删除这个子账号,删除后这个子账号将无法登录,并且会恢复子账号数量限制的额度。

子账号数量限制

不同会员的套餐对子账号的数量有不同的限制,这规定了您除了一个主账号以外,最多再同时拥有多少个子账号。

目前子账号的数量限制如下:

轻量年度版:不支持子账号功能,仅有1个主账号。

高级年度版:最多同时拥有5个子账号 和 1个主账号。

轻量永久版:最多同时拥有5个子账号 和 1个主账号。

高级永久版:最多同时拥有10个子账号 和 1个主账号。

定制版:按需定制,最多同时拥有500个子账号 和 1个主账号。

子账号使用规范

薄荷图床的子账号功能是为了帮助用户降低企业在薄荷图床的采购成本,并加强后台权限限制,提供更方便、更安全的服务。

在此之上,我们对子账号有一定的限制:

1. 使用子账号上传的文件的合法性由会员本人直接负责。如因分配的子账号被他人上传违规文件,法律责任归属会员本人,且由此导致的账号信用评级下降,违规处理等均直接影响到主账号。

2. 子账号是为了帮助用户降低成本,提高安全性。您不得以任何理由对子账号进行倒卖,不得在第三方平台公开子账号的账号密码、不得通过子账号对图床进行渗透,破解,逆向工程等。如系统检测到上述行为,由此导致的账号信用评级下降,违规处理等均直接影响到主账号。同时,倒卖子账号为侵犯薄荷图床版权、商标权并以此获利的违法行为,如情节严重,我们会以法律手段予以打击。

3. 如您发现子账号的使用者上传了违规文件,请立刻删除违规文件,并联系客服进行报备,及时报备后不会对账号进行下调评级,也不会对主账号进行处罚。

4. 如您在使用子账号的过程中遇到了任何问题或需要任何帮助,请随时与客服联系,我们将及时为您处理。

会员版 - 自定义域名相关问题

自定义域名是什么?我应该如何操作?

自定义域名是指将您的域名解析至薄荷图床指定的服务器上,由此生成您域名的图片链接。

自定义域名的前提是您拥有一个域名。

在您拥有域名的前提下,联系客服手把手带您操作。

自定义域名支持什么后缀?

自定义域名支持全部常见英文后缀,以及部分中文后缀。

注意:如您使用.ltd、.org、.edu、 .law 后缀的域名请提交相关组织单位的证明文件。

注意:不支持 .gov后缀。

自定义域名免费吗?

免费。

如产生退款将收取50元/次的自定义域名操作费用。

自定义域名支持防盗链吗?

支持,请编写好符合格式的防盗链规则,提交给客服。

自定义域名需要备案吗?

如您选购非大陆地区的服务器套餐则无需备案。

自定义域名是否支持HTTPS?

支持,需要您自备 Nginx 格式的SSL证书,支持泛域名和单域名证书(OV、EV、DV等)。

是否支持HTTP和HTTPS双协议?

默认支持。

SSL证书到期前,是否会提醒我更新?

是的,SSL证书到期前一周内,客服会联系您更新SSL证书。

自定义域名是否支持数据打包迁出?

支持。如您会员到期不打算续费,请提前三个工作日与客服联系免费迁出。如会员过期后要求迁出数据,可能产生费用。

要在哪里注册域名?

可以在阿里云,腾讯云,godaddy等知名平台注册域名。

会员版 - 自定义水印相关问题

我应该如何设置水印?

首先请登录您会员的管理后台,点击页面右上角的设置,再点击水印设置

水印默认关闭,如需开启,将开启水印选项调整为开启,然后点击更新按钮即可,开启后上传的文件将按照您设置的水印内容和规则自动添加水印。

请注意:开启水印后上传的图片都会添加上水印,水印操作需要服务器进行大量计算,因此可能对上传速度造成一定影响(实验测试约12%左右)。

如何调整水印的颜色?

在水印的配置项中,找到水印颜色风格选项,点击输入框即可弹出选项卡, 选择自己喜欢的颜色即可。

如何设定水印的位置?

在水印的配置项中,找到水印位置选项,点击输入框即可弹出选项卡,点选所需水印位置。

如何设定水印字体大小?

在水印的配置项中,找到水印文字大小选项,在输入框中输入1~99的数字即可设置大小,数字越大,文字越大。

如何设定水印透明度?

在水印的配置项中,找到水印透明度选项,在输入框中输入0~100的数字即可设置透明度,透明度可选择范围由0(完全透明)到100(完全不透明)。

是否支持自定义水印字体?

很遗憾,由于字体版权风险原因,目前暂不支持用户主动设置水印的字体。

当然,如果您拥有某字体的版权或授权,可以联系客服审核后替换成您的字体。

是否支持图片水印?

图片水印功能已在规划中,将在后期上线。

会员版 - 存储空间相关问题

如何查看我的存储空间使用情况?

首先请登录您会员的管理后台,点击页面右上角的设置,再点击账号信息,即可看到空间使用情况。

我是否可以删除不需要的文件(链接)来恢复空间?

是的,您可以随时在后台删除掉您不需要的文件(链接)来恢复空间,和手机空间、电脑空间、硬盘空间等是一样的逻辑。

当我升级会员后,空间是否会实时提升?

是的,当您升级到空间更大的会员后,空间会实时提升。

会员版是否支持扩容空间,以及价格是多少?

是的,会员支持扩容空间。

年度版会员扩容费用为30元/GB/年。请注意:如果会员到期未续费,空间将连同会员一起失效

永久版会员扩容费用为30元/GB/永久有效。永久有效,不需要续费

是否有除了扩容以外的方式增加空间?

是的,您也可以开通多个会员账号,每个账号都是独立的空间。

会员版 - 删除文件相关问题

如何删除不需要的文件?

首先请登录您会员的管理后台,在管理后台中对应的文件即可删除。

支持单选删除,也支持多选删除。

如何找到我要删除的文件?

看一下您的链接,下面链接中红色部分就是您的文件在管理后台的存储位置:

https://example.com/i/2025/09/30/1234.jpg

以上面的链接为例,首先您应该在后台首页找到2025文件夹,点击2025文件进入,然后可以看到09文件夹,点击进入,可以看到30文件夹,再点击进入,即可看到1234.jpg这个文件,点击右侧的删除图标即可删除。

删除后,文件占用的空间会恢复吗?

是的,当您在后台删除掉您不需要的文件(链接)后,空间就会恢复,和手机空间、电脑空间、硬盘空间等是一样的逻辑。

删除后,文件链接还有效吗?

从图床的角度来说,文件删除后链接就失效了就打不开了,会不会影响到别的平台,要看他们有没有保存您的链接到他们服务器,具体如下:

如果您用在跨境电商平台、erp平台等:

部分电商平台会在您使用链接上传图片后,将链接替换成电商平台的链接,这样即使您在后台删除图片了也不会有任何影响。

而如果电商平台是直接引用的原链接,那么就会失效,造成影响。

因此,请提前与电商平台客服确认规则。

但通用的方式是:除非一个商品完全下架,否则不建议让链接失效

我们为您准备了一份来自“用户反馈”的信息表,此表格说明了哪些链接在成功上传到电商平台后可以删除,哪些不可以删除(请注意:以下信息来源于用户反馈,薄荷图床不对此做任何保证,请以电商平台官方解释为准)

如果您用在短信,或者软件消息中:

在后台删除文件后,链接会失效,请确保文件所指向的链接已经不再使用,再进行删除。

如果您用在开发的网站中:

在后台删除文件后,链接会失效,如果您要在后台删除文件,请务必提前确认网站已不再引用该文件的链接,以免造成影响。

删除后,能否恢复删掉的文件?

您在后台操作删除的文件将被移动到一个用户不可见的,系统内置的回收站,删除的文件将在此保留一定时间,如您误删了文件,可在删除操作后的7个自然日内联系客服为您免费恢复误删的数据。

在删除操作后的第8个自然日,您删除的文件将从回收站中抹除,并转储一份安全备份到数据备份硬盘中进行冷存储,并在删除操作后的6个自然月后永久销毁,在销毁前的时间内您仍可联系客服进行数据恢复,此次恢复的数据将产生数据恢复服务费用。

* 数据恢复服务不属于会员权益中的一部分,在某些极端条件下也存在无法恢复的可能,比如用户设置回收站无法解析的文件名称、文件违规、文件内部存在风险、回收站已使用容量远超会员套餐的空间大小、恶意刷量刷空间等。

会员版 - 更换链接里的文件

如何实现链接不变,但更换链接里面的文件?

第一步:请登录到您的管理后台,找到您的文件所在的文件夹,这张名为bg-03.jpg的文件就是我们要替换内容的文件,可以看到,是一张淡紫色背景的图片:

第二步:在此页面,点击页面右上角的上传按钮,上传新的文件(注意,新文件必须和旧文件格式相同或兼容):

这个111.jpg就是我们刚刚上传的新文件,内容是一群小鸭子:

第三步:将原来的bg-03.jpg删除,然后把这个新文件111.jpg的名字改为bg-03.jpg

第四步:打开原来的链接,就会发现已经替换成功了。

按上述操作完成后,链接内容没变?

在链接页面按下键盘的 Ctrl + F5 强制刷新浏览器缓存即可。

如果强制刷新缓存后还是旧文件,说明替换有问题,请联系客服协助您。

会员版 - 套餐升级相关问题

套餐是否支持升级?

是的,升级规则如下:

年度版支持补差价升级到更高级类型的年度版。

永久版支持补差价升级到更高级类型的永久版。

年度版距离到期时间一个月以上支持补差价升级到更高级类型的永久版。

注:以上“补差价”规则是 以补差价时候的目标套餐的官网售价 减去 已支付的金额

套餐是否支持降级?

套餐不支持降级。

常规套餐是否可以升级为独享服务器套餐?

不支持,需单独开通独享服务器套餐账号。

会员版 - 导出链接相关问题

我有几种方式批量导出链接?

目前提供三种方便的批量导出链接方式:

第一种:您可以在前台上传完成后,在页面中直接获取到本次上传的链接,可以进行复制或者导出表格的操作。

第二种:您可以登录 管理后台,在想导出链接的文件夹右侧点击此按钮,可以导出此文件夹以及其所有子文件夹中所有文件的链接的TXT文档。

第三种:进入有文件的文件夹中,选择要导出链接的文件后,点击导出选中的链接按钮,即可弹出导出窗口,此种导出方式也支持导出各种格式的链接以及横版竖版的表格。

会员版 - 设定文件夹

如何把文件上传到指定的文件夹?

目前提供三种方式:

第一种:如果后台不存在这个文件夹,可以直接在前台页面输入新文件夹的名称,然后再选择文件上传,这样就会自动新建这个文件夹,并且把这些文件上传到这个文件夹里。

同时支持多级文件夹,语法: folder1/folder2/forder3···。

第二种:如果后台已经存在这个文件夹,则可以直接点击选择已有文件夹按钮,来选择要上传到的文件夹,选择文件夹之后,再上传,即可上传到这个文件夹里。(当然,即使后台已经存在这个文件夹,也可以按第一种方法操作)

第三种:管理后台中,进入目标文件夹,然后点击右上角的上传按钮,上传文件即可上传到这个文件夹中。

会员版 - API相关问题

哪些套餐支持API功能?

高级年度版、高级永久版、独享服务器套餐支持API功能。

如何开启API并获取API Token?

请登录到您的管理后台,点击右上角的设置按钮,再点击API设置,即可看到API Token,然后将开启API的选项调整为“开启”,再点击更新按钮即可。

如何获取API接口地址?

请登录到您的管理后台,点击右上角的设置按钮,再点击API设置,即可看到API接口地址。

如何刷新API Token?

请登录到您的管理后台,点击右上角的设置按钮,再点击API设置,即可看到API Token,然后点击重新生成Token按钮即可。

API Token是否会定期失效?

为了方便用户使用,目前,API Token是长期有效的,不会定期失效,如需刷新API Token,可手动刷新。

API是否有调用速率限制?

没有。但建议您通过 “循环” 等方式将文件排队请求接口,而不是同时发起多个调用请求,以获得更稳定的体验。

API支持以什么方式上传文件?

支持上传本地文件,URL链接,以及BASE64。

API状态异常,如何解决?

如调用API时,提示API状态异常,则表示您账号的API接口出现了被违规使用、被滥用等情况。请等待系统定期审核恢复或联系客服处理。

API支持什么语言调用?

API就像一家餐厅的标准菜单,它不关心您是用筷子、刀叉还是手来吃饭。只要您能按照菜单上的说明点餐(即按照API文档的格式发送请求),并能读懂餐厅给您的小票(即解析API返回的数据),您就能享用美食。因此,您使用任何编程语言都可以调用API。

薄荷图床的API是基于标准的HTTP协议和JSON数据格式设计的,因此本身不限制任何编程语言。只要您使用的语言能够发送HTTP请求和处理JSON数据(现在几乎所有主流语言都支持),就可以调用它,比如 Python, Java, JavaScript, Go, PHP, C# 等等。

实现的关键在于根据我们的API文档来构建正确的请求。建议您先查阅API文档了解具体的接口要求,然后使用您熟悉的语言的网络库(如 Python 的 requests)进行开发。

我不会写代码,如何通过API上传?

可使用薄荷图床自动化上传工具实现大致和API相同的功能。

会员版 - API文档

API文档 V12.0.0+

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

返回格式:JSON

请求方式:POST

BODY:Form-Data

适用会员程序版本:V12.0.0 以上

请求参数

参数名称 类型 必选 描述
api_token String 您的api_token,用于验证请求者身份。填写错误将导致请求失败,报402错误。
upload_format String 可选值 filebase64url。 即通过二进制文件上传还是通过base64编码上传还是通过远程URL上传。
- 如果通过文件上传,则下一个参数 uploadedFile 就必须是二进制文件
- 如果通过base64编码上传,则下一个参数 uploadedFile 就必须是完整的Base64编码
- 如果通过url上传,则下一个参数 uploadedFile 就必须是完整的URL地址(必须包含协议头)
如不填写则默认按照二进制文件的方式上传
uploadedFile File、String 要上传的文件,缺少该参数报406错误。
- 上一个参数 upload_format 如果是file或者置空就必须以二进制文件的方式上传
- 上一个参数 upload_format 如果是base64就必须通过base64编码的方式上传
- 上一个参数 upload_format 如果是url就必须通过url的方式上传
protocol_type String 需要返回HTTPS协议的链接还是HTTP协议的链接,取值 http 即返回HTTP协议的链接。 不填写该字段则默认返回HTTPS协议的链接(薄荷图床本身支持双协议访问,因此无需担心协议变更后影响正常访问。)
mode Number(Int)、String 命名方式,可取值 1,2,3,4
- 1:自动重命名
- 2:保留原文件名
- 3:自动重命名(短链接模式)
- 4:自定义文件名称(如选4,则下一个参数 custom_filename 必须填写,否则报【803参数不足】错误)
不填默认为自动重命名。
custom_filename Number(Int)、String 自定义文件名称的文件名,可带格式后缀或不带格式后缀,如同一目录下出现重复名称,则系统将自动添加防覆盖后缀,例如 sample_0001.jpg。 如果上一个参数【mode】取值为4,则必须填写这个参数,否则报【803参数不足】错误。
uploadPath String 要上传的目录,不填默认为 年/月/日 目录。多级目录以 / 分隔
watermark Number(Int)、String 是否开启水印,可取值 1,0
- 1:开启水印
- 0:关闭水印
不填默认为关闭水印。关于水印文字颜色、透明度、水印位置等设置,继承管理后台中的设置,不需要在API中声明。
image_compress Number(Int)、String 是否开启图片无损压缩,可取值 1,0
- 1:开启无损压缩
- 0:关闭无损压缩
不填默认为关闭无损压缩。
※只有png和jpg(jpeg)格式的图片才可以被压缩,其他格式的文件会自动跳过。
image_compress_level Number(Int)、String 压缩质量,可取值 0到100之间的任意整数,数值越大,质量越高,数值越小,质量越低,图片损失也越大,通常低于50后就属于明显的有损压缩范围内了。 如果上一个参数【image_compress】取值为1,则必须填写这个参数,否则报【801参数不足】错误。

请求示例

require 'uri'
require 'net/http'

uri = URI('你的API接口地址')
# 入参
res = Net::HTTP.post_form(
    uri, 
    'api_token' => '你的token', 
    'upload_format' => 'url', # 示例,使用URL方式上传,下面upload_format填写的是完整的包含协议头的URL地址
    'uploadedFile' => 'https://static.zixiaoyun.com/riyugo/image/logo.jpg'
)
puts res.body  if res.is_a?(Net::HTTPSuccess)
<?php
    // 此处仅提供一个简单的示例,具体实现起来方案有很多,可按需开发

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

    // 定义POST DATA 数组
    $post_data = [
        'uploadedFile'=>new \CURLFile('/www/wwwroot/myProduct/demo.jpg'),// 如果使用这个方式请填写文件的绝对路径
        'api_token' => '你的token',
        'upload_format'=> '通过文件上传还是通过Base64或者URL上传', // 可选值 file 、base64 或者 url,不填则默认为file
        '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;

?>
# 导入requests包
import requests
# 此处仅提供一个简单的示例,具体实现起来方案有很多,可按需开发
def python_demo():
    url = '你的接口地址'
    files = {'uploadedFile': ('demo.jpg', open('demo.jpg', 'rb'), "image/jpeg")}
    data = {'api_token': '你的token',
            'upload_format':'通过文件上传还是通过Base64或者URL上传', # 可选值 file 、base64 或者 url,不填则默认为file
            'mode': '命名方式',
            'uploadPath': '上传目录',
            'watermark': '是否开启水印',
            }
    res = requests.post(url, data=data, files=files)
    print(res.text)
python_demo()
// 此处仅提供一个简单的示例,具体实现起来方案有很多,可按需开发
// !!!注意,这里使用的类名是 *Main*,如果你直接下载此文件进行运行,那么注意你应该把文件的名字设置为 *Main.java*
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

public class Main {
    public static void main(String[] args) {
        String apiUrl = "你的接口地址"; 
        String field1 = "你的API_token";
        String field2 = "url"; // 设置上传方式,这里设置为 url
        String field3 = "https://example.com/123.jpg"; // 通过url上传方式要在 uploadedFile 字段填写一个包含协议的URL

        try {
            // 准备要发送的数据
            String postData = "api_token=" + URLEncoder.encode(field1, "UTF-8") +
                    "&upload_format=" + URLEncoder.encode(field2, "UTF-8") +
                    "&uploadedFile=" + URLEncoder.encode(field3, "UTF-8");

            // 创建URL对象
            URL url = new URL(apiUrl);

            // 创建HttpURLConnection对象
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();

            // 设置请求方法为POST ** 发送请求方式,必须是 POST
            conn.setRequestMethod("POST");

            // 允许输出数据
            conn.setDoOutput(true);

            // 发送POST请求
            try (DataOutputStream dos = new DataOutputStream(conn.getOutputStream())) {
                dos.writeBytes(postData);
                dos.flush();
            }

            // 获取响应结果
            int responseCode = conn.getResponseCode();
            StringBuilder response = new StringBuilder();
            try (BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()))) {
                String line;
                while ((line = in.readLine()) != null) {
                    response.append(line);
                }
            }

            // 打印响应结果
            System.out.println("响应码:" + responseCode);
            System.out.println("响应内容:" + response.toString());

            // 关闭连接
            conn.disconnect();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
// 此处仅提供一个简单的示例,具体实现起来方案有很多,可按需开发
package main

import (
	"fmt"
	"io"
	"io/ioutil"
	"net/http"
	"net/url"
	"strings"
)

func main() {
	// 准备要发送的数据
	data := url.Values{}
	data.Set("api_token", "你的API_token")
	data.Set("upload_format", "url")                                               // 设置上传方式,这里设置为 url
	data.Set("uploadedFile", "https://static.zixiaoyun.com/riyugo/image/logo.jpg") // 通过url上传方式要在 uploadedFile 字段填写一个包含协议的URL

	// 发送 POST 请求 -- 发送请求方式,必须是 POST
	resp, err := http.Post("你的接口地址", "application/x-www-form-urlencoded", strings.NewReader(data.Encode()))
	if err != nil {
		fmt.Println("请求失败:", err)
		return
	}
	defer func(Body io.ReadCloser) {
		err := Body.Close()
		if err != nil {

		}
	}(resp.Body)

	// 读取响应内容
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("无法读取响应内容:", err)
		return
	}

	// 验证响应状态
	if resp.StatusCode == http.StatusOK {
		// 打印响应内容
		fmt.Println("请求成功:", string(body))
	} else {
		// 打印报错信息
		fmt.Println("请求失败,错误码:", resp.StatusCode)
	}
}
-- 此处仅提供一个简单的示例,具体实现起来方案有很多,可按需开发
local http = require("socket.http")
local ltn12 = require("ltn12")
local url = require("socket.url")

-- 创建一个帮助函数,用来构建查询字符串
local function buildQueryString(data)
  local queryString = {}
  for key, value in pairs(data) do
    table.insert(queryString, url.escape(key) .. "=" .. url.escape(value))
  end
  return table.concat(queryString, "&")
end

-- 准备数据
local postData = {
  api_token = "你的API_token",
  upload_format = "url", -- 设置上传方式,这里设置为 url
  uploadedFile = "https://example.com/123.jpg" -- 通过url上传方式要在 uploadedFile 字段填写一个包含协议的URL
}

-- 将数据编码为URL参数的格式
local postDataEncoded = buildQueryString(postData)

-- 通过POST发送请求
local response = {}
local res, code, headers, status = http.request({
  url = "你的接口地址",  
  method = "POST", -- 发送请求方式,必须是 POST
  headers = {
    ["Content-Type"] = "application/x-www-form-urlencoded",
    ["Content-Length"] = string.len(postDataEncoded)
  },
  source = ltn12.source.string(postDataEncoded),
  sink = ltn12.sink.table(response)
})

-- 验证状态码
if code == 200 then
  local responseBody = table.concat(response)  -- 响应结果表转换为字符串
  print("请求成功:" .. responseBody)
else
  print("请求失败,错误码:" .. code)
end
// 此处仅提供一个简单的示例,具体实现起来方案有很多,可按需开发
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("upload_format", "通过文件上传还是通过Base64或者URL上传"); // 可选值 file 、base64 或者 url,不填则默认为file
            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);
            })
          
        },
        
    }
}
// 此处仅提供一个简单的示例,具体实现起来方案有很多,可按需开发
    function getfilename(){
            var uploadedFile = document.getElementById('boheimg').files;
            var formData = new FormData();
            formData.append("uploadedFile", uploadedFile[0]);
            formData.append("api_token", "你的token");
            formData.append("upload_format", "通过文件上传还是通过Base64或者URL上传"); // 可选值 file 、base64 或者 url,不填则默认为file
            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("上传错误!");
                 }
             });
        }
// 此处仅提供一个简单的示例,具体实现起来方案有很多,可按需开发
var url
url = "你的接口地址"

var res = http.postMultipart(url, {
  "api_token": "你的token",
  "upload_format": "file", // 使用File方式上传
  "uploadedFile" : open("/文件路径/文件名称.jpg"), // 此处为格式示例,具体根据本地目录调整
})

log(res.body.string()) // 打印响应结果

本条目部分内容由薄荷图床会员用户 zaozao 贡献。

按照如下操作流程配置即可:

按照如下操作流程配置即可:

返回值参数说明

参数名称 类型 描述 示例
status String 返回的状态值
success
statusCode String 返回的状态码
200
resultData String 处理后返回的结果
success:File uploaded
uploadFormat String 上传方式
file
protocolType String 指定返回的URL的协议类型
https
url String 返回的文件链接
https://123.com/abc.jpg
lessurl String 自动协议链接(不含https://或http://前缀的链接)
123.com/abc.jpg
bbsurl String 图片BBS代码
[img]https://123.com/abc.jpg[/img]
markdownurl String 图片MarkDown代码
![](https://123.com/abc.jpg)
htmlurl String 图片HTML代码
<img src="https://123.com/abc.jpg" />
originFileName String 原文件名称
abc.jpg
fileNameBody String 不含扩展名的原文件名
abc
fileNameExt String 不含原文件名的扩展名
jpg
fileSize Int 文件大小(单位:字节)
10340
image_x Int 图片X轴(宽度,单位:像素)
1980
image_y Int 图片Y轴(高度,单位:像素)
1080
image_pixels Int 图片像素数
2138400
image_bits Int 图片位深度
8

返回值示例

一般情况下都会返回下列状态码,如果上传的不是图片格式,则 image_ximage_yimage_pixelsimage_bits 的返回值会是 null

{
    "status": "success",
    "statusCode": "200",
    "resultData": "success:File uploaded",
    "url": "返回的URL(链接)",
    "lessurl": "返回的URL(链接)(不包含协议名)",
    "bbsurl": "图片BBS代码",
    "markdownurl": "图片MarkDown代码",
    "htmlurl": "图片HTML代码",
    "originFileName": "原文件名称",
    "fileNameBody": "不含扩展名的原文件名",
    "fileNameExt": "不含原文件名的扩展名",
    "fileSize": 文件大小(单位:字节),
    "image_x": 图片X轴(宽度,单位:像素),
    "image_y": 图片Y轴(高度,单位:像素),
    "image_pixels": 图片像素数,
    "image_bits": 图片位深度
}

返回状态码说明

状态码 描述
200 成功
401 失败:未开启API上传功能。(在后台开启即可)
402 失败:api_token错误。(请查证api_token)
403 失败:文件尺寸超限。(升级套餐或调整文件尺寸)
405 失败:未被支持的扩展名(文件格式)。
406 失败:没有选择文件就执行了上传操作。
407 失败:账号违规,API被封禁。
408 失败:账号剩余磁盘空间不足。(升级套餐或扩容)
409 失败:账号违规,API功能被暂时封禁。(等待解封)
500 失败:其他错误或服务器内部错误。(请联系客服处理)
700 失败:链接不符合规则,请添加https://或http://协议头。
★ 只有通过URL上传出错后才会出现这个错误代码
701 失败:下载文件发生未知错误,可能是对方链接设置了密码或设置了相关权限。
★ 只有通过URL上传出错后才会出现这个错误代码
702 失败:请求下载的文件不存在或对方URL开启了防盗链(类似于404 NOT FOUND)。请确认URL是否正确以及对方的防盗链策略。
★ 只有通过URL上传出错后才会出现这个错误代码
703 失败:无权限下载该文件。表示对方服务器设置了目录权限或下载权限。
★ 只有通过URL上传出错后才会出现这个错误代码
704 失败:对方服务器错误。表示对方服务器出现了无法请求的情况,比如防火墙隔离、500Error、高负载等。
★ 只有通过URL上传出错后才会出现这个错误代码
705 失败:提交的网址无法打开,请求下载的文件不存在或对方URL开启了防盗链。
★ 只有通过URL上传出错后才会出现这个错误代码
706 失败:不支持的文件类型或链接有误。请确保上传的文件是图床支持的文件类型。
★ 只有通过URL上传出错后才会出现这个错误代码
801 失败:开启了无损压缩但未填写压缩质量参数。
★ 只有开启无损压缩上传出错后才会出现这个错误代码
802 失败:开启了无损压缩但压缩质量的值不是整数或这个数值不在0~100的范围内。
★ 只有开启无损压缩上传出错后才会出现这个错误代码
803 失败:命名方式选择为 4 但并未设定 custom_filename 参数。
★ 只有命名方式为4并且参数不足的情况下后才会出现这个错误代码