开源的图床程序收集整理

1. 兰空图床 lsky-pro

项目地址:https://github.com/wisp-x/lsky-pro

  •  支持第三方云储存,本地、阿里云 OSS、腾讯云 COS、七牛云、又拍云、FTP
  •  多图上传、拖拽上传、粘贴上传、上传预览、全屏预览、页面响应式布局
  •  简洁的图片管理功能,支持鼠标右键、单选多选、重命名等操作
  •  全局配置用户初始剩余储存空间、设置指定用户剩余储存空间
  •  一键复制图片外链、二维码扫描链接、图片鉴黄功能
  •  设置上传文件、文件夹路径命名规则、文件夹分类功能
  •  接口上传、图片软删除
  •  OTA 在线升级系统
  •  (Dark)暗黑主题
  •  IP 封禁功能(支持通配符)
  •  自定义链接参数
  •  单用户模式
  •  图片广场(画廊)
  •  上传图片自动增加水印(支持图片或文字)

2. Chevereto

官网:https://chevereto.com/

免费版项目地址:https://github.com/rodber/chevereto-free

有收费版和免费版,功能强大。

3. PicUploader

项目地址:https://github.com/xiebruce/PicUploader

  • 支持Mac和Windows(也可用于Linux服务器端)、理论上也支持Linux桌面版,只要你能添加右键菜单或者用快捷键调用上传命令的话;
  • 支持图片压缩后上传(支持jpg/png/webp,gif/bmp不支持压缩);
  • 支持添加水印后上传(支持文字水印、图片水印、自定义水印颜色/透明度/角度/位置,支持jpg/png/bmp/webp,gif不支持水印);
  • 返回的链接可自定义(如原始链接、Markdown格式链接、可点击的Markdown格式链接、完全自定义的链接);
  • 完全自定义上传文件名(可选变量有当前年、月、日、当前时间戳,随机字符串(可调长度));
  • 上传过的文件直接返回历史记录(防止重复上传,仅限在不添加水印不压缩的情况下);
  • 可作为MWeb/Typora的API使用,可作为PicGo/ShareX/uPic等的自定义图床使用;
  • 支持快捷键上传剪贴板中的图片(配合Alfred/WinHotKey使用);
  • 支持Web端拖放、粘贴、或直接选择上传图片;
  • 支持Web端设置所有参数;
  • 支持上传任意格式文件(除了图片,还可以上传任意格式文件,只要你的存储端支持就行);
  • 目前支持的图床:七牛、腾讯、网易、百度、京东、阿里、又拍、sm.ms、Imgur、Ucloud、青云、Nextcloud、Github、Gitee(码云)、Cloudinary、Chevereto、Minio、Aws s3、金山、华为、DropBox、OneDrive、GoogleDrive、Azure、Gitlab、图速云、个人服务器(sftp)、本地(即PicUploader所在机器)。
  • 注:之前支持的coding.net由于封了token方式授权的接口,所以现在暂时不支持coding.net。

4. PicGo

项目地址:https://github.com/Molunerfinn/PicGo

github上star的人很多的一款图床。

PicGo 本体支持如下图床:

  • 七牛图床 v1.0
  • 腾讯云 COS v4\v5 版本 v1.1 & v1.5.0
  • 又拍云 v1.2.0
  • GitHub v1.5.0
  • SM.MS V2 v2.3.0-beta.0
  • 阿里云 OSS v1.6.0
  • Imgur v1.6.0

特色功能:

  • 支持拖拽图片上传
  • 支持快捷键上传剪贴板里第一张图片
  • Windows 和 macOS 支持右键图片文件通过菜单上传 (v2.1.0+)
  • 上传图片后自动复制链接到剪贴板
  • 支持自定义复制到剪贴板的链接格式
  • 支持修改快捷键,默认快速上传快捷键:command+shift+p(macOS)| control+shift+p(Windows\Linux)
  • 支持插件系统,已有插件支持 Gitee、青云等第三方图床
    • 更多第三方插件以及使用了 PicGo 底层的应用可以在 Awesome-PicGo 找到。欢迎贡献!
  • 支持通过发送 HTTP 请求调用 PicGo 上传(v2.2.0+)

5. imgurl

项目地址:https://github.com/helloxz/imgurl

作者已经很久没有更新了。

  • 支持拽拖上传、多图上传、Ctrl + V粘贴上传、URL上传
  •  支持图片裁剪,自动生成缩略图
  •  限制访客上传数量
  •  图片压缩/批量压缩
  •  图片鉴黄/批量鉴黄
  •  API支持
  •  在线更新
  •  外部存储

6. EasyImage 简单图床

项目地址:https://github.com/icret/EasyImages2.0

  • 支持仅登录后上传
  •  支持设置图片质量
  •  支持上传图片转换为指定格式
  •  支持文字/图片水印
  •  支持设置图片指定宽/高
  •  支持限制最低宽度/高度上传
  •  支持设置广告
  •  图片监黄
  •  支持开启/关闭api上传
  •  在线管理图片(增、删、改、查)
  •  支持网站统计 请将统计代码放入:public/static/hm.js
  •  更多·····

网盘挂载目录列表程序收集整理

收集整理常用的网盘目录列表程序。

平时常用的网盘有:微软OneDrive,Google Drive,阿里云盘,天翼云盘,等等。

1. Sharelist

项目地址:https://github.com/reruin/sharelist

支持Google Drive、 OneDrive 国际版 、 OneDrive世纪互联版 、 天翼云盘、阿里云盘、GitHub、蓝奏云、h5ai、WebDAV 等,支持插件拓展,提供虚拟目录、流量中转、负载均衡等多种功能;

支持Docker、Heroku。

说明文档:https://reruin.github.io/sharelist/docs/#/zh-cn/

安装参考:https://www.daniao.org/9004.html

2. OneManager

项目地址: https://github.com/qkqpttgf/OneManager-php

支持Onedrive、阿里网盘、Google Drive等网盘,可以直接在线预览图片、在线播放视频,也可以对文件夹或者目录设置密码,限制共享权限。

可以安装在任意PHP空间上,支持Heroku、Vercel、腾讯无服务器云函数、华为云函数工作流、阿里云函数计算、百度云函数计算。

安装参考:https://wzfou.com/onemanager/

3. ZFile

项目地址: https://github.com/zhaojun1998/zfile

基于 Java 的在线网盘程序,支持对接 S3、OneDrive、SharePoint、又拍云、本地存储、FTP 等存储源,支持在线浏览图片、播放音视频,文本文件等文件类型。

4. Cloudreve

项目地址: https://github.com/cloudreve/Cloudreve

官网: https://cloudreve.org/

支持本机、从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、OneDrive (包括世纪互联版) 作为存储端。

5. CTList

地址:https://www.moerats.com/archives/1028/

貌似已经删了。

一个可以绑定多个天翼云网盘的目录列表程序,支持视频播放。

6. Alist

项目地址:https://github.com/Xhofe/alist/

一款阿里云网盘的目录文件列表程序,后端基于golang最好的http框架gin,前端使用vue和ant design。
更新:Alist已经支持多种网盘

说明文档:https://alist-doc.nn.ci/docs/intro

安装:https://www.nn.ci/archives/alist.html

本地存储

阿里云盘

OneDrive / Sharepoint(国际版, 世纪互联,de,us)

天翼云盘

GoogleDrive

123云盘

蓝奏云

Alist

FTP

PikPak

闪电盘

S3

WebDav

wordpress批量删除指定分类所有文章

文章数量不多,可以直接后台手动删除,如果数量很多,需要执行SQL:

delete
from
wp_posts
using
wp_posts,
wp_term_relationships,
wp_term_taxonomy
where
wp_posts.id = wp_term_relationships.object_id
and
wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
and
wp_term_relationships.term_taxonomy_id = 18(分类ID)

如果还需删除分类:

delete FROM `wp_term_relationships` where term_taxonomy_id = 18(分类ID)

如果需要删除指定post_type所有文章,执行:

DELETE FROM wp_posts WHERE post_type='post_type';
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT id FROM wp_posts);
DELETE FROM wp_term_relationships WHERE object_id NOT IN (SELECT id FROM wp_posts)

另外,update更新内容的用法:

UPDATE wp_posts SET post_content = replace( post_content, '原内容','新内容') WHERE option_name = 'home' OR option_name ='siteurl';

wordpress自动给旧文章生成别名

用wordpress遇到一个需求,需要重新修改网站固定连接格式,以前是以post id为url,现在需要修改为别名。

为了不影响原来的post的url结构,需要给原来的post批量生成别名,即slug_name=post_id

有以下几种方法。

注意,如果是安装了Opcache和Memcached缓存扩展,更新文章url结构后,一定要刷新下缓存。

方法一:在模板函数 functions.php 文件中添加代码实现批量修改旧文章别名

使用方法:将下边的代码添加到到当前主题目录下 functions.php 文件,在php结束标记 ?> 前 即可。

// 修改WordPress旧文章别名为文章IDfunction Bing_post_name_id(){query_posts( 'posts_per_page=-1' );while( have_posts() ){the_post();$post_id = $GLOBALS['post']->ID;wp_update_post( array('ID' => $post_id,'post_name' => $post_id) );}wp_reset_query();}if( $_GET['post_name_id'] == 'yes' ) add_action( 'init', 'Bing_post_name_id' );

放置好代码后,访问一下下边的网站,注意替换成你的域名,访问前注意一定要备份数据,以免出错。

http://www.aszhi.com?post_name_id=yes

文章多的话网页加载会比较慢,因为正在一篇文章一篇文章的修改别名,要耐心等到网页完全加载好才可以。

PS:加载好后,删除之前添加的代码,修改完成,所有文章的别名都会变成自身的ID。

方法二:在配置文件 wp-config.php 中添加代码实现批量修改旧文章别名

使用方法:将下面的代码添加到网站 根目录的 wp-config.php 的最底部,保存后,访问一次网站首页(你将看到浏览器一直都在努力打开网页,不要急,耐心等待,直到网页真正打开,所需时间看文章数和网络情况而定)。等网页打开后,删除刚刚添加到 wp-config.php 的代码!(删除代码是为了防止下次打开网站首页缓慢的情况发生)

/** 批量更改旧文章的别名为文章ID */// 添加一个变量来包容文章标题数组,防止重复操作$slug_done = array();// 查询所有文章$posts = $wpdb->get_results( "SELECT`ID`,`post_title`FROM`" . $wpdb->posts . "`WHERE`post_type` = 'post'" );// 输出文章foreach( $posts AS $single ) {$this_slug = $single->ID;$slug_done[] = $this_slug;// 使用文章ID替换文章原来的别名$wpdb->query( "UPDATE`" . $wpdb->posts . "`SET`post_name` = '" . $this_slug . "'WHERE`ID` = '" . $single->ID . "'LIMIT 1" );}

方法三:直接替换SQL数据库里的 post_name 字段的方法

进入 mysql 命令【 选择你所创建的数据库的命令:mysql> USE MYSQLDATA; (注:MYSQLDATA是数据库的名称。按回车键出现 Database changed 时说明操作成功!) 】或者 phpmyadmin 的 SQL (登录后打开数据库管理系统,找到网站对应的wordpress数据库,点击后,在上方有个SQL按钮) ,执行如下SQL命令修改即可:

update wp_posts set post_name=ID where post_status='publish' and post_type='post';

PS:wp_posts 是 WordPress 的文章数据表,wp_ 是默认的前缀,如果自定义更改过,请根据实际修改即可。

方法四:使用新建一个 PHP 文件批量修改旧文章别名

操作方法:将以下代码保存为 php 文件,比如 uppostname.php,并上传到网站根目录,执行即可,成功后记得删除!

<?php/*** 将所以已发布的文章别名修改成对应ID,让文章以别名完美连续* PS:备份网站数据库后,请放到WordPress根目录执行,成功后请记得删除!**/require('./wp-blog-header.php');global $wpdb;$wpdb->query("UPDATE $wpdb->posts SET post_name = ID WHERE post_status = 'publish' AND post_type = 'post'");echo 'Update Success!';?>

任选其中一种方法,成功执行之后,你之前发布的文章的别名就全部变成了对应的 ID 了!

新文章自动使用文章ID作为文章的别名的方法,看之前的文章:

继续阅读

details和summary标签实现折叠效果

多层折叠:

<details>
          <summary>Season1</summary>
              <details>
                <summary>Episode1</summary>
                <p>剧情简介</p>
              </details>
            <details>
              <summary>Episode2</summary>
              <p>剧情2</p>
            </details>
			
		  <summary>Season2</summary>
              <details>
                <summary>Episode1</summary>
                <p>剧情简介</p>
              </details>
            <details>
              <summary>Episode2</summary>
              <p>剧情2</p>
            </details>
</details>

单层折叠:



<details>
          <summary>目录1</summary>
          <p>内容</p>
</details>