EasyImages2.0-master无数据库的自用图床源码

简介

始于2018年7月,支持多文件上传,简单无数据库,返回图片url,markdown,bbscode,html的一款图床程序 演示地址:https://img.infatuation.top/ 之前一直用的图床程序是:PHP多图长传程序2.4.3 由于版本过老并且使用falsh上传,在当前html5流行大势所趋下,遂利用基础知识新写了一个以html5为默认上传并且支持flash,向下兼容至IE9。

功能介绍

  • 支持仅登录后上传
  •  支持设置图片质量
  •  支持文字/图片水印
  •  支持设置图片指定宽/高
  •  支持上传图片转换为指定格式
  •  支持限制最低宽度/高度上传
  •  支持API
  •  在线管理图片
  •  支持网站统计
  • 支持设置广告
  •  支持图片鉴黄
  •  支持自定义代码
  •  支持上传IP黑白名单
  •  支持创建仅上传用户
  •  更多支持请安装尝试···

安装

推荐环境:Nginx + PHP≥7.0 + linux

windows:

Linux:

  • git clone https://github.com/icret/EasyImages2.0.git 至web目录

  • 赋予web目录www:www和0755权限:

chmod 755 -R /web目录 chown -R www:www /web目录

BT宝塔面板:

  • 安装环境 Ngixn(推荐) / Apache + PHP(推荐≥7.0)
  • 软件商店搜索简单图床一键部署

常见问题

  1. 请将所有文件赋予0755www权限
  2. PHP不太熟悉的请不要将图床程序放置于二级目录
  3. 请关闭防跨站或删除域名文件夹内的user.ini文件 如宝塔面板|军哥lnmp
  4. 网站域名与图片域名必须填写,如果只有一个域名请填写成一样的
  5. 首次使用会执行安装程序并生成install.lock 跳过安装流程请删除install目录
  6. 首次访问首页会检查环境并在config目录下生成EasyImage.lock
  7. 可以使用谷歌浏览器的调试模式查看错误F12->console
  8. upload File size exceeds the maximum value 调整PHP上传大小
  9. undefined function imagecreatefromwebp()GD没安装webp, 以此类推
  10. Warning: is_dir(): open_basedir restriction in effect解决方法同3
  11. 无法上传/访问/不显示验证码: 1. 权限问题见问题1 2. CDN缓存了 3. 开防火墙了
  12. Fatal error: Allowed memory size......主机内存或分配给PHP的内存不够 解决方法百度
  13. 开启原图保护功能后打开图片链接显示404是因为nginxApache页面缓存导致的,Nginx解决办法:
# 把Nginx这段配置删掉
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
    expires      30d;
    error_log /dev/null;
    access_log /dev/null;
}

API上传

  • 需要开启图床安全->API上传示例
<form action="http://127.0.0.1/api/index.php" method="post" enctype="multipart/form-data">
    <input type="file" name="image" accept="image/*">
    <input type="text" name="token" placeholder="在tokenList文件找到token并输入" /> <input type="submit" />
</form>

  • 上传成功后返回JSON
{
    "result": "success",
    "code": 200,
    "url": "http://127.0.0.1/i/2022/05/03/vfyjtq-0.png",
    "srcName": "2532516028",
    "thumb": "http://127.0.0.1/application/thumb.php?img=/i/2022/05/03/vfyjtq-0.png",
    "del": "http://127.0.0.1/application/del.php?hash=ZnVzYlZEM0dJUWhiQ2UzVVVsK1haMG5nNk92K0d3Q3JldjMyWlF5bHFxcz0="
}

程序升级

  • 备份config目录(没有增加上传用户和api可以只保留config.php文件)和上传文件目录
  • 将新程序下载至网站目录解压覆盖,然后将备份的文件替换既完成升级
  • 如果出现错误请在设置中把所有设置中底部按钮 保存 一次

安全配置

  • Apache环境在上传目录添加配置文件.htaccess 使上传目录不可运行PHP程序(默认已经存在)
<FilesMatch "\.(?i:php|php3|php4|php5)">
Order allow,deny
Deny from all
</FilesMatch>
  • Nginx环境禁止多个目录运行PHP程序:
    # "i|public"是你要禁止的目录 放到listen段落之后才生效
    location ~* ^/(i|public)/.*\.(php|php5)$
   {
      deny all;
    }
  • Lighthttpd环境禁止多个目录运行PHP程序:
$HTTP["url"] =~ "^/(i|public)/" {
	fastcgi.server = ()
}

鉴黄

图床支持moderatecontent和nsfwjs方式鉴黄

  • moderatecontent:

    1. 注册moderatecontent并获取Token
    2. 后台API设置中填入Moderate Key
    3. 后台图片安全图片鉴黄以moderatecontent方式
  • nsfwjs nsfwjs docker

    1. 确定已安装dockerdocker-compose
    2. 拉取镜像 docker pull icret/nsfw_restful_api:latest 或者直接 docker run -p 3307:3307 -d icret/nsfw_restful_api
    3. 后台API设置中填入网址 比如:http://IP:3307/api/nsfw/classify?url=
    4. 后台图片安全图片鉴黄以nsfwjs方式
    5. 如果你使用别的nsfwjs api,必须返回json 并且格式如下:
[{
    "className": "Drawing",
    "probability": 0.824431836605072
}, {
    "className": "Hentai",
    "probability": 0.16360442340373993
}, {
    "className": "Neutral",
    "probability": 0.007620695047080517
}, {
    "className": "Porn",
    "probability": 0.004154415801167488
}, {
    "className": "Sexy",
    "probability": 0.00018858206749428064
}]

兼容

  • 最低PHP 5.6,推荐PHP≥7.0及以上版本,需要PHP支持Fileinfo,iconv,zip,mbstring,openssl扩展,如果缺失会导致无法上传/删除图片
  • 文件上传视图提供文件列表管理和文件批量上传功能,允许拖拽(需要HTML5支持)来添加上传文件,支持上传大图片,优先使用HTML5旧得浏览器自动使用Flash和Silverlight的方式兼容

下载

download
来源:蓝奏云 | 提取码:xuan

官方地址:https://github.com/icret/EasyImages2.0/

THE END