「一个人的桃花源」

文章最后更新时间为:2021 年 02 月 26 日 22:49:20

考虑到Typecho原生的图片上传不太方便,而Mac下用uPic并配合快捷键上传图片效率很高。所以这篇文章介绍如何利用自己的服务器为uPic搭建一个上传图片的接口。

uPic利用POST请求向服务器中上传图片,所以我们只要写一个能处理文件上传的POST的网站接口即可。

首先在网站根目录创建文件夹upload,然后在upload里创建index.php,并在该文件里写入以下代码:

<?php

if(!isset($_POST["verification"]) || !isset($_POST["pic_name"]) || !isset($_SERVER["HTTP_TOKEN"])) exit;
if($_POST["verification"] != "upic_custom") exit;
if($_SERVER["HTTP_TOKEN"] != token) exit;

move_uploaded_file($_FILES["file"]["tmp_name"], "uPic/" . $_POST['pic_name']);

header('Content-Type:application/json; charset=utf-8');

$arr = array('url'=>'your_website_url/upload/uPic/' . $_POST['pic_name']);

exit(json_encode($arr)); 
?>

token为你自己设置的密钥,your_website_url为你网站的网址(对我而言,your_website_urlhttps://vixbob.moe)。

PS:uPic文件夹要事先手动创建,否则会报错。

uPic图床配置如下图:

PS:your_website_url含义同上,保存路径:{year}{month}{day}{hour}{minute}{since_second}{since_millisecond}{second}{random}{.suffix}

其他字段配置如下图:

PS:pic_name中填{year}{month}{day}{hour}{minute}{since_second}{since_millisecond}{second}{random}{.suffix}token_为你设置的密钥。

踩过的坑

  1. 请求头中的Content-Type一定要设为multipart/form-data; charset=utf-8;,否则服务端无法处理这个数据。
  2. 接口要返回包含图片地址的JSON文件,因为uPic是从这个文件里读取数据的。

标签: 折腾, uPic, MacOS, 自定义图床, php

添加新评论

Hitokoto

分类

归档

友情链接

其它