EasyImage-简单图床 2.0
EasyImage-简单图床 2.0
2022年06月30日 603 阅读
  • 首页
  • /
  • 源码分享
  • /
  • 正文
  • 前言

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


    演示地址:https://png.cm
    使用手册: kancloud看云
    项目地址: GitHub

    特点

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

    常见问题

    1. 请将所有文件赋予0755和www权限
    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是因为nginx或Apache页面缓存导致的,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 = ()
    }
    或者参考:https://blog.png.cm/996.html

    鉴黄

    图床支持moderatecontent和nsfwjs方式鉴黄

    nsfwjs nsfwjs docker

    [{
        "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
    }]

    界面演示

    EasyImage
    简单图床

    兼容

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

    0

    评论 (0)

    取消