Skip to content

新版简单强大无数据库的图床2.0版 演示地址:

License

Notifications You must be signed in to change notification settings

snicoe/EasyImages2.0

 
 

Repository files navigation

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

About

新版简单强大无数据库的图床2.0版 演示地址:

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 69.8%
  • CSS 27.4%
  • JavaScript 2.2%
  • HTML 0.6%