Skip to content

icret/EasyImages2.0

master
Switch branches/tags
Code

Latest commit

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Mar 7, 2022
May 26, 2022
api
May 18, 2022
May 26, 2022
May 26, 2022
i
May 18, 2022
May 26, 2022
May 26, 2022
++
Feb 6, 2022
Jan 17, 2022
May 26, 2022
Mar 24, 2022
May 26, 2022

EasyImage 简单图床 2.0

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

EasyImage2.0 GitHub's stars EasyImage2.0 GitHub's forks PHP Release jsdelivr License QQ group

演示 | Chrome/Edge 插件 | 使用手册 | Telegram

本人善写bug 发现bug可提交 issues 追求稳定请下载 稳定版

目录

特点-注意-安装-升级-安全-API-鉴黄-更新日志-支持开发者-界面演示-兼容-鸣谢-许可证

特点

  • 支持仅登录后上传
  • 支持设置图片质量
  • 支持文字/图片水印
  • 支持设置图片指定宽/高
  • 支持上传图片转换为指定格式
  • 支持限制最低宽度/高度上传
  • 支持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
}]

更新日志

点击查看2.0版更新日志
  • 2022-05-27 v2.6.5
  • 更改文件位置
  • 2022-05-26 v2.6.4
  • 更改版本显示方式
  • 2022-05-26 v2.6.3
  • 增加图片下载

  • 增加简单暗黑模式

  • 增加读取上传日志

  • 增加广场浏览往日限制

    • 有助于防爬虫抓取
  • 增加登陆验证码开关(默认关闭)

  • 删除图片详情页Exif信息

  • 文件管理中图片使用缩略图显示

  • 更改广场->信息中图片长宽获取方式

  • 优化图片详情页/广场UI/日志/用户/api 列表

  • 2022-05-04 v2.6.2
  • 增加API/用户文件浏览和删除
  • 增加转换webp后也会添加水印
    • 转换成webp后不建议开启水印,会增大图片体积
    • webp水印消耗更多PHP内存,PHP8以上有很大概率失败
  • 更改广场页面返回顶部
  • 优化了管理界面UI
  • 修复一些bug
  • 2022-05-03 v2.6.1
  • 增加登陆用户有效期
  • 增加管理员/登陆用户/Token专用目录
  • 增加转换图片格式后压缩图片(不建议同时开启后端压缩)
  • 增加隐藏存储路径(网站域名与图片域名不同且图片域名需绑定到图片目录)
  • 直链缩略图支持bmp,webp
  • 本次更新较大,建议重新安装!
  • 2022-04-29 v2.6.0
  • 修复源图缺陷
  • 修复API回收不能还原问题
  • 布局修改
  • 登录页美化
  • 屏蔽登陆页面chrome类浏览器自动填充
  • 2022-04-02 v2.5.9
  • 增加安装提示
  • 增加忘记密码提示
  • 增加检测水印图片/水印字体是否存在
  • 修复登陆逻辑
  • 修复广场重复显示图片
  • 修改广场删除/回收样式
  • 调整了广告的位置
  • 调整后台设置分表
  • 2022-04-02 v2.5.8
  • 修复在PHP8环境下的bugs
  • 修复删除token产生的bug
  • 更改顶部广告位置
  • 更改广场样式
  • 2022-3-30 v2.5.7
  • 增加弹窗公告
  • 恢复文件管理
  • 微调了广场样式
  • 微调了删除文件
  • 删除了base.php
  • 日志记录上传IP端口
  • 日志记录通过API上传的ID
  • 修复管理页面短标签bug #30
  • 修复图片回收中批量删除失败
  • 修复广场预览ico格式文件失败
  • 修复个别浏览器显示二维遮住网页 #28
  • 缩略图最大生成与用户设置最大上传关联
  • 安全检测中检测本地域名改为检测局域网
  • 2022-3-13 v2.5.6
  • 修复加密删除后不能正确提示
  • 修复webp转换其他格式失败
  • 修复文字水印透明度不生效
  • 修复jscolor显示不正确
  • 增加原图保护
  • 增加检测版本
  • 2022-3-4 v2.5.5
  • 增加设置页面检测是否开启登录上传
  • 将footer固定在底部
  • 移除function_API.php
  • 修复TimThumb不支持bmp格式的bug
  • 修复TimThumb不支持webp动态图片bug
  • 2022-2-29 v2.5.4
  • 增加Token有效期
  • 增加回收图片按钮
  • 增加加密删除回收站
  • 修复广场标题
  • 2022-2-21 v2.5.3
  • 增加图床数据开放
  • 增加自定义服务条款
  • 升级 Viewer.js 到 v1.10.4
  • 将页面选择记录从cookie改为本地存储
  • 修复实时生成缩略图导致的页面布局异常
  • 优化显示代码
  • 不出意外今年将只修复bug和兼容问题
  • 2022-2-19 v2.5.2
  • 增加简繁体转换
  • 增加管理页面记录当前操作页
  • 修复一处暴露路径bug
  • 2022-2-13 v2.5.1
  • 增加异步执行鉴黄
  • 取消检测imagick扩展
  • 修复可能导致检测弹窗弹出失败
  • 2022-2-7 v2.5.0
  • 修复静态文件调用失败
  • 2022-2-6 v2.4.9
  • 修复静态文件引用
  • 2022-2-6 v2.4.9
  • 修复flash和silverlight路径引用(>IE9不影响)
  • markdown html alt值改为源文件名
  • 升级jquery-3.4.1至3.6.0
  • 调整了静态文件位置
  • 2022-2-5 v2.4.8
  • 调整缩略图内存至128M
  • 修复无可疑图片时显示错误
  • 修复转换为webp时会复制一份bug
  • 修复开启登录上传后无法上传的bug
  • 插件检测的敏感信息转移到管理目录
  • 增加安装时检测.user.ini
  • 增加检测鉴黄接口是否可以正确访问
  • 增加异步处理文件,上传完毕后处理速度变快了
  • 增加 nsfwjs 接口方式检测违规图片
    • 作者测试时用的docker搭建 docker地址:zengdawei/nsfw_restful_api
    • 使用注意 程序期望nsfwjs返回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
    }
]
  • 增加WordPress上大名鼎鼎的实时缩略图生成TimThumb
    • TimeThumb为本图床修改版,会缓存到缓存文件夹方便下次调用
  • 2022-1-27 v2.4.7
  • 优化页面排版
  • 更改部分命名
  • 增加后端压缩率
  • 增加可以显示多条公告
  • 增加上传后是否显示删除
  • 增加可以关闭广场/统计导航|页面
  • 调整登录和退出文件位置
  • 调整二维码内容为每个页面
  • 更换验证码库并不再区分大小写
  • 修复一处有概率暴露图片绝对路径的bug
  • 2022-1-22 v2.4.6
  • 视图优化
  • 删除重复内容
  • 增加图片信息页面
  • 增加上传黑/白名单
  • 修复因关闭上传日志而导致的无法鉴黄和后端压缩图片
  • 修复安装时更改管理员账号失败
  • 修复更改管理员账户后无法退出
  • 2022-1-13 v2.4.5
  • 修复一处权限问题
  • 修复恢复可疑图片
  • 增加复制提示
  • 增加默认上传后首选显示链接
  • 2022-1-3 v2.4.5 beta
  • 增加复制提示
  • 更新安装代码
  • 更改前端样式
  • 更新上传格式
  • 重构了密码验证
  • 使用md5存储密码
  • 增加后台设置提示
  • 增加更改网站配色
  • 增加缩略图索引格式
  • 调整后台分类及位置
  • 增加在线修改账号密码
  • 增加以源文件名称命名
  • 增加缩略图两种生成方式和开关
  • 修复开启前端压缩导致的上传图片异常
  • 屏蔽因缺少PHP扩展而不能生成缩略图的格式
  • 2021-12-25 v2.4.4
  • 更改favicon.ico
  • 修复缩略图数量统计
  • 增加缩略图生成开关
  • 日志增加更多文件信息
  • 前端增加裁剪和压缩质量
  • 上传失败将会输出更多信息
  • 修复前端压缩图片不能关闭问题
  • 修复上传设置中错误和页面显示
  • 调整网站设置->上传设置的排序
  • 将快捷操作中心转移到网站设置中
  • 修复因生成缩略图导致的前端数据返回失败
  • 增加简单图床chrome浏览器插件,可自行配置网站->EasyImage-Browser-Extension
  • 2021-11-17 v2.4.3
  • 增加登录验证码
  • 二级目录安装
  • 一些优化
  • 2021-11-14 v2.4.2
  • 增加上传日志
  • 2021-11-12 v2.4.1
  • 增加缓存周期配置
  • 增加上传统计
  • 增加viewjs
  • 更新依赖件
  • 修复统计错误
  • 2021-11-9 v2.4.0
  • 增加统计缓存
  • 增加最近30天上传统计与占用空间图表
  • 增加初始化安装(可能会不支持二级目录安装,可删除install文件夹初始化)
  • 增加在线编辑配置(之前是需要修改config.php文件,现在可以直接网站端修改了)
  • 删除广场会导致浏览速度变慢的代码
  • 删除快捷配置会导致浏览速度变慢的代码
  • 2021-11-3 v2.3.2
  • 增加广场图片缓存
  • 重构广场样式
  • 2021-11-3 v2.3.1
  • 增加监黄接口
  • 增加审核违规图片
  • 修复对php5.6的支持
  • 修复二级目录的安装
  • 2021-10-24 v2.3.0
  • 将服务器环境监测改为第一次打开时自动检测(如需再次展示需删除config目录下的EasyImage.lock)
  • 增加快捷操作中心显示服务信息
  • 增加对上传文件的命名方式(详见config.php文件里的注释)
  • 增加隐私政策、服务条款、DMCA
  • 增加自定义静态文件CDN源
  • 增加dns-prefetch
  • 删除了tinyfilemanager文件管理(感觉没什么用)
  • 一些bug得以修复
  • 2021-5-22 v2.2.0
  • 增加根目录静态属性
  • 增加浏览页面懒加载
  • 增加浏览页面启用选定日期查看图片
  • 增加版本检测 每月10日06点和25日01点检测Github是否更新
  • 增加上传压缩 此压缩有可能使图片变大!特别是小图片 也有一定概率改变图片方向
  • 增加批量压缩目录 TinyPng或本机压缩,本机压缩出现的问题
  • 修复title
  • 修复二级目录安装
  • 修复对PHP5.6的兼容 建议使用php7.0及以上!
  • 2021-5-8 v2.1.1
  • 修复上传界面上传失败提示信息bug
  • 浏览页面重构
  • 删除页面添加登录删除
  • 调整首页显示
  • 将调整图片长宽放置前端,减小资源开销
  • 其他小调整
  • 2021-5-2 v2.1
  • 将tinyfilemanager配置文件简单翻译并集成到config.php
  • 增加底部自定义信息
  • 增加检测PHP环境,给与提示
  • 增加删除图片url(服务器不会保存删除链接)
  • 恢复随机浏览20张上传图片 可以设定浏览数量和关闭浏览
    • 随机浏览图片可以在线删除
  • 可以使用 https://png.cm/libs/list.php?num=100 定义浏览数量
  • 修复一些调用
  • 更改二维码显示方式
  • 开启api 需要token验证上传
  • 重构并修复check.php相关文件
  • 重构部分代码
  • 更改目录结构
  • 增加安全性配置
    • Apache配置文件默认设置上传目录不可运行
RewriteEngine on RewriteCond % !^$
RewriteRule i/(.*).(php)$  [F]
RewriteRule public/(.*).(php)$  [F]
RewriteRule config/(.*).(php)$  [F]
    • Nginx请在Nginx配置:
 # 禁止运行php的目录
    location ~* ^/(i|public|config)/.*\.(php|php5)$
    {
     deny all;
    }
  • 2021-4-14 v2.0.2.1 Dev1
  • 更新静态文件版本
  • 请所有更新过2.0.2.1版本升级到此版本
  • 更改一些描述
  • md5提交登录验证
  • 登录上传也显示公告
  • 2021-03-28 v2.0.2.1
  • 更新管理程序,修复部分漏洞
  • 修复不能等比例缩小图片
  • 支持php8
  • 2019-6-26 v2.0.2.0
  • 精简压缩代码,使得不再压缩后反而变大
  • 删除异域上传功能,不再支持异域上传
  • 修复开启登录后无法粘贴密码
  • 后台控制上传数量,上传格式
  • 其他一些优化
  • 2019-6-14 v2.0.1.9
  • 增加复制链接按钮
  • 增加暂停上传按钮
  • 增加QQ截图,剪切板上传
  • 增加文字/图片水印透明度
  • 恢复开启/关闭api上传
  • 恢复支持水印文字颜色
  • 恢复支持远程上传图片
  • 修复安装时候的权限
  • 修复管理无法多选的问题
  • 修复上传透明png背景变为纯黑的问题
  • 修复成功上传图片但前端无法获取链接
  • 修复在centos64 lnmp1.6 php7.1环境下的图片信息读取问题
  • 修改图片压缩方式,速度更快,相比之前提高5倍以上
  • 更改管理路径
  • 更改上传路径,文件名更短
  • 更改上传显示方式为缩略图
  • 关闭添加图片后自动上传
  • 纪念一下2019年,将版本号改为2.0.1.9
  • 2019-5-23 v2.0
  • 在继承上个版本(1.6.4)的基础上进行了全新优化
  • 修复上传经常失败的问题
  • 删除一些不常用但会增加功耗的过程
  • 全新的压缩 将文件继续缩小
  • 全新的目录系统,精简代码
  • 设置仅允许在config.php修改,注释更加明了,即使没有代码基础也可以操作
  • 增加新的文件管理系统,感谢 tinyfilemanager
  • 支持文字/图片水印 可自定义文字颜色
  • 支持文字水印背景颜色
  • 支持文字水印透明度
  • 支持删除远程上传文件 -> 不再支持删除远程文件
  • (支持开启/关闭api自定义文字水印)
  • 支持删除自定义删除图片(仅管理员)
与1.6.4版本差别
不建议再使用 EasyImage 1.6.4版本
  • 在继承上个版本(1.6.4)的基础上进行了全新优化
  • 修复上传经常失败的问题
  • 删除一些不常用但会增加功耗的过程 (删除的在下边会有标记)
  • 全新的压缩 将文件继续缩小
  • 全新的目录系统,精简代码
  • 设置仅允许在config.php修改,注释更加明了,即使没有代码基础也可以操作
  • 增加新的文件管理系统,感谢 tinyfilemanager
  • 支持文字/图片水印 可自定义文字颜色
  • 支持文字水印背景颜色
  • 支持文字水印透明度
  • 支持删除远程上传文件 -> 不再支持删除远程文件
  • (支持开启/关闭api自定义文字水印)
  • 支持删除自定义删除图片(仅管理员)

支持开发者

支付宝支持 微信支持
支付宝支持 微信支持

界面演示

简单图床 - 上传界面 简单图床 - 广场界面 简单图床 - 后台界面 简单图床 - 统计界面 简单图床 - 图片信息 简单图床 - 上传日志

兼容

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

鸣谢

开源许可

  • have fun!

项目状态 Stargazers over time