Skip to content

Commit

Permalink
v2.6.8
Browse files Browse the repository at this point in the history
- 上传组件支持到 PHP 8.2
- 修复下载任意文件漏洞 [#75](#75)
- 增加自定义底部信息
- 增加自定义管理提示
- 增加图床模式
  - 危险:除图片外不验证文件是否正常,也代表可以上传任意指定格式!
- 增加上传时生成缩略图(仅设置直链缩略图时生效),低配vps负载较大,影响前端上传速度!
- 其他一些优化
  • Loading branch information
icret committed Dec 29, 2022
1 parent 4fae3bd commit cbaf3a3
Show file tree
Hide file tree
Showing 22 changed files with 1,307 additions and 1,429 deletions.
29 changes: 21 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
演示地址:[https://png.cm/](https://png.cm/)
之前一直用的图床程序是:[PHP多图长传程序2.4.3](https://www.jb51.net/codes/40544.html)
由于版本过老并且使用falsh上传,在当前html5流行大势所趋下,遂利用基础知识新写了一个以html5为默认上传并且支持flash,向下兼容至IE9。
***本程序环境要求极低,适用于单一场景(游客上传)和个人使用,不适于多用户复杂场景***

[![EasyImage2.0 GitHub's stars](https://img.shields.io/github/stars/icret/easyImage2.0?style=social)](https://github.com/icret/EasyImages2.0/stargazers)
[![EasyImage2.0 GitHub's forks](https://img.shields.io/github/forks/icret/easyimage2.0?style=social)](https://github.com/icret/EasyImages2.0/network/members)
Expand Down Expand Up @@ -41,7 +42,8 @@
- [x] 支持自定义代码
- [x] 支持上传IP黑白名单
- [x] 支持创建仅上传用户
- [x] 更多支持请安装尝试···
- [x] 对于安装环境要求极低
- [x] 更多功能支持请安装尝试···

## 安装
> 推荐环境:Nginx + PHP≥7.0 + linux
Expand All @@ -50,12 +52,12 @@

#### Linux:

- `git clone https://github.com/icret/EasyImages2.0.git` 至web目录
- `git clone https://github.com/icret/EasyImages2.0.git` 至安装目录

- 赋予web目录www:www和0755权限:
- 赋予安装目录www:www和0755权限:
```shell
chmod 755 -R /web目录
chown -R www:www /web目录
chmod -R 755 /安装目录
chown -R www:www /安装目录
```

#### BT宝塔面板
Expand All @@ -77,8 +79,9 @@ chown -R www:www /web目录
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`解决办法:
12. 宝塔或者其他环境安装成功但是上传失败,多数原因是防火墙拦截上传,取消拦截即可
13. `Fatal error: Allowed memory size......`主机内存或分配给PHP的内存不够 解决方法百度
14. 开启原图保护功能后打开图片链接显示`404`是因为`nginx``Apache`页面缓存导致的,`Nginx`解决办法:
```Nginx
# 把Nginx这段配置删掉
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
Expand Down Expand Up @@ -180,10 +183,20 @@ $HTTP["url"] =~ "^/(i|public)/" {

<details><summary>点击查看2.0版更新日志</summary>

* 2022-12-30 v2.6.8
- 上传组件支持到 PHP 8.2
- 修复下载任意文件漏洞 [#75](https://github.com/icret/EasyImages2.0/issues/75)
- 增加自定义底部信息
- 增加自定义管理提示
- 增加图床模式
- 危险:除图片外不验证文件是否正常,也代表可以上传任意指定格式!
- 增加上传时生成缩略图(仅设置直链缩略图时生效),低配vps负载较大,影响前端上传速度!
- 其他一些优化

* 2022-09-20 v2.6.7
- 优化后台显示
- 增加控制缩略图尺寸
- 修复启用Opcache带来的问题 [#57](https://github.com/icret/EasyImages2.0/issues/)
- 修复启用Opcache带来的问题 [#57](https://github.com/icret/EasyImages2.0/issues/57)

* 2022-07-10 v2.6.6
- 增加文件uuid命名
Expand Down
36 changes: 20 additions & 16 deletions admin/admin.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -237,17 +237,7 @@
}
?>
<div class="row">
<div class="alert alert-primary alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">x</button>
<h5>目录保存以 年/月/日/ 递进,非必要请勿修改! 否则会导致部分操作不可用;</h5>
<h5>本人仅为程序开源创作,如遇非法网站使用与本人无关,请勿用于商业用途;</h5>
<h5>作为开发者你可以对相应的后台功能进行扩展(增删改相应代码),但请保留代码中源作者信息。</h5>
<a href="https://png.cm/?admin.inc" target="_blank"><button type="button" class="btn btn-mini"><i class="icon icon-external-link"></i> 演示网站</button></a>
<a href="https://www.kancloud.cn/easyimage/easyimage/content" target="_blank"><button type="button" class="btn btn-mini"><i class="icon icon-hand-right"></i> 使用手册</button></a>
<a href="https://t.me/Easy_Image" target="_blank" data-toggle="tooltip" title="EasyImage Telegram Group"><button type="button" class="btn btn-mini"><i class="icon icon-plane"></i> Telegram</button></a>
<a href="../public/images/wechat.jpg" title="您的赞美是我开发的动力!" data-toggle="lightbox" class="btn btn-mini" style="color:#329d38;"><i class="icon icon-wechat"></i> 打赏作者</a>
<a href="../public/images/alipay.jpg" title="您的赞美是我开发的动力!" data-toggle="lightbox" class="btn btn-mini hidden-xs inline-block" style="color:#1970fc;"><i class="icon icon-zhifubao"></i> 打赏作者</a>
</div>
<?php echo $config['set_notice'];?>
<div class="col-md-2 col-xs-4">
<ul class="nav nav-tabs nav-stacked">
<li><a data-tab href="#Content1">网站设置</a></li>
Expand Down Expand Up @@ -290,7 +280,7 @@
<textarea class="form-control" rows="2" name="description" required="required" onkeyup="this.value=this.value.replace(/\s/g,'')"><?php echo $config['description']; ?></textarea>
</div>
<div class="form-group">
<label data-toggle="tooltip" title="不同公告以a标签分割">网站公告 | 支持html</label>
<label data-toggle="tooltip" title="不同公告以a标签换行分割">滚动公告 | 支持html</label>
<textarea class="form-control" rows="2" name="tips"><?php echo $config['tips']; ?></textarea>
</div>
<div class="form-group">
Expand All @@ -305,6 +295,10 @@
<label data-toggle="tooltip" title="HTML / 统计代码 / JS / CSS">页脚代码 | 需闭合标签</label>
<textarea class="form-control" rows="2" name="footer"><?php echo $config['footer']; ?></textarea>
</div>
<div class="form-group">
<label data-toggle="tooltip" title="管理页面顶部提示信息, 可用于一些备注">管理提示 | 支持html</label>
<textarea class="form-control" rows="2" name="set_notice" placeholder="管理设置页面的提示信息"><?php echo $config['set_notice']; ?></textarea>
</div>
<div class="form-group">
<label data-toggle="tooltip" title="服务条款 / 隐私政策 / DMCA">使用条款| 支持HTML</label>
<textarea class="form-control" rows="2" name="terms"><?php echo $config['terms']; ?></textarea>
Expand All @@ -326,7 +320,7 @@
<input type="text" class="form-control" name="mime" required="required" value="php echo $config['mime'];" onkeyup="this.value=this.value.replace(/\s/g,'')">
</div> -->
<div class="form-group col-md-5">
<label data-toggle="tooltip" title="请以英文 , 分割 最后一个扩展名后边不要加 ,">允许的扩展名</label>
<label data-toggle="tooltip" title="请以英文 , 分割 最后一个不加 , <br/>想上传图片以外的格式?请关闭图床安全->图床模式">允许的扩展名</label>
<input type="text" class="form-control" name="extensions" required="required" value="<?php echo $config['extensions']; ?>" onkeyup="this.value=this.value.replace(/\s/g,'')">
</div>
<div class="form-group col-md-4">
Expand Down Expand Up @@ -493,13 +487,13 @@
<div class="form-group col-md-6">
<label>缩略图生成方式</label>
<div class="radio-primary">
<input type="radio" name="thumbnail" value="0" <?php if ($config['thumbnail'] === 0) echo 'checked="checked"'; ?> id="thumbnail0"><label for="thumbnail0" data-toggle="tooltip" title="直接输出上传图片,会导致流量增加"> 关闭</label>
<input type="radio" name="thumbnail" value="0" <?php if ($config['thumbnail'] === 0) echo 'checked="checked"'; ?> id="thumbnail0"><label for="thumbnail0" data-toggle="tooltip" title="直接输出上传图片,会导致流量增加"> 原图</label>
</div>
<div class="radio-primary">
<input type="radio" name="thumbnail" value="1" <?php if ($config['thumbnail'] === 1) echo 'checked="checked"'; ?> id="thumbnail1"><label for="thumbnail1" data-toggle="tooltip" title="利用TimThumb生成 | 优点: 带缓存周期 | 缺点: 无法被cdn缓存"> 访问时生成 | 推荐</label>
<input type="radio" name="thumbnail" value="1" <?php if ($config['thumbnail'] === 1) echo 'checked="checked"'; ?> id="thumbnail1"><label for="thumbnail1" data-toggle="tooltip" title="利用TimThumb生成 | 优点: 带缓存周期 | 缺点: cdn无法缓存"> 访问生成 | 推荐</label>
</div>
<div class="radio-primary">
<input type="radio" name="thumbnail" value="2" <?php if ($config['thumbnail'] === 2) echo 'checked="checked"'; ?> id="thumbnail2"><label for="thumbnail2" data-toggle="tooltip" title="优点: 缩略图直链 | 缺点: 每日首次访问广场需刷新一次,有缓存不失效"> 访问时生成 | 直链</label>
<input type="radio" name="thumbnail" value="2" <?php if ($config['thumbnail'] === 2) echo 'checked="checked"'; ?> id="thumbnail2"><label for="thumbnail2" data-toggle="tooltip" title="优点: 缩略图直链 | 缺点: 缓存不失效, 低配vps负载较大,影响前端上传速度"> 访问生成 | 直链</label>
</div>
</div>
<div class="form-group col-md-6">
Expand Down Expand Up @@ -646,7 +640,17 @@
</div>
</div>
</div>
<div class="col-md-12">
<div class="col-md-2">
<div class="switch switch-inline" data-toggle="tooltip" title="危险:关闭后除图片外不验证文件是否正常,代表可以上传任意指定格式!">
<input type="hidden" name="allowed" value="0">
<input type="checkbox" name="allowed" value="1" <?php if ($config['allowed']) echo 'checked="checked"'; ?>>
<label style="font-weight: bold">图床模式</label>
</div>
</div>
</div>
</div>

<div class="col-md-12">
<div class="switch switch-inline" data-toggle="tooltip" title="建议开启,有效防止因撞库导致账户密码被破解!">
<input type="hidden" name="captcha" value="0">
Expand Down
2 changes: 1 addition & 1 deletion admin/verson.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.6.7
2.6.8
24 changes: 23 additions & 1 deletion api/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
// 图片完整相对路径:/i/2021/05/03/k88e7p.jpg
if ($handle->processed) {
header('Content-type:text/json');
// 上传成功后返回json数据

// 图片相对路径
$pathIMG = $Img_path . $handle->file_dst_name;
// 图片访问网址
Expand Down Expand Up @@ -132,6 +132,28 @@
$delUrl = "Admin closed delete";
}

// 当设置访问生成缩略图时自动生成 2022-12-30
if($config['thumbnail'] == 2) {
// 自定义缩略图长宽
$thumbnail_w = 258;
$thumbnail_h = 258;

$handle->image_resize = true;

if (!empty($config['thumbnail_w']) || !empty($config['thumbnail_h'])) {
$handle->image_x = $config['thumbnail_w'];
$handle->image_y = $config['thumbnail_h'];
}
// 如果调整后的图像大于原始图像,则取消调整大小,以防止放大
$handle->image_no_enlarging = true;

$handle->file_new_name_body = date('Y_m_d_') . $handle->file_dst_name_body;

$handle->process(APP_ROOT . $config['path']. 'thumbnails/');

}

// 上传成功后返回json数据
$reJson = array(
"result" => "success",
"code" => 200,
Expand Down

0 comments on commit cbaf3a3

Please sign in to comment.