v2.4.8
parent
2eee083a66
commit
c2c6eb3a12
|
@ -44,7 +44,7 @@
|
|||
2. 对`PHP`不太熟悉的请不要将图床程序放置于二级目录
|
||||
3. 请关闭防跨站或删除域名文件夹内的`user.ini`文件 如宝塔面板
|
||||
4. 网站域名与图片域名必须填写,如果只有一个域名请填写成一样的
|
||||
5. 第一使用会执行安装程序并生成`install.lock` 不执行安装可以删除`install`目录
|
||||
5. 第一次使用会执行安装程序并生成`install.lock` 不执行安装可以删除`install`目录
|
||||
6. 第一次访问会检查环境并在`config`目录下生成`EasyImage.lock`
|
||||
7. 可以使用谷歌浏览器的调试模式查看错误`F12->console`
|
||||
8. 出现`undefined function imagecreatefromwebp()`是因为GD没安装webp
|
||||
|
@ -104,6 +104,8 @@ $HTTP["url"] =~ "^/(i|public)/" {
|
|||
- 修复无可疑图片时显示错误
|
||||
- 修复开启登录上传后无法上传的bug
|
||||
- 增加安装时检测.user.ini
|
||||
- 增加检测鉴黄接口是否可以正确访问
|
||||
- 将插件检测等敏感信息转义到管理目录
|
||||
- 增加 [nsfwjs](https://github.com/infinitered/nsfwjs) 接口方式检测违规图片
|
||||
- 作者测试时用的`docker`搭建 `docker`地址:[zengdawei/nsfw_restful_api
|
||||
](https://hub.docker.com/r/zengdawei/nsfw_restful_api)
|
||||
|
|
|
@ -823,6 +823,7 @@ if (isset($_GET['reimg'])) {
|
|||
<link href="<?php static_cdn(); ?>/public/static/zui/lib/datetimepicker/datetimepicker.min.css" rel="stylesheet">
|
||||
<script src="<?php static_cdn(); ?>/public/static/zui/lib/datetimepicker/datetimepicker.min.js"></script>
|
||||
<script src="<?php static_cdn(); ?>/public/static/md5.min.js"></script>
|
||||
<?php /** 引入空间检测文件 */ if ($config['checkEnv']) require_once APP_ROOT . '/application/check_admin.inc.php'; ?>
|
||||
<script>
|
||||
// tips提示
|
||||
$('[data-toggle="tooltip"]').tooltip({
|
||||
|
|
|
@ -1,115 +1,87 @@
|
|||
<?php
|
||||
require_once __DIR__ . '/function.php';
|
||||
// global $config;
|
||||
// 跳转安装
|
||||
if (!is_file(APP_ROOT . '/install/install.lock') and is_file(APP_ROOT . '/install/install.php')) {
|
||||
echo '<script type="text/javascript">window.location.href="' . get_whole_url('/') . '/install/index.php"</script>';
|
||||
}
|
||||
/**
|
||||
* 检测弹窗内容
|
||||
*/
|
||||
|
||||
global $config;
|
||||
|
||||
// 扩展检测
|
||||
$expand = array('fileinfo', 'iconv', 'gd', 'mbstring', 'openssl',);
|
||||
foreach ($expand as $val) {
|
||||
if (!extension_loaded($val)) {
|
||||
echo '
|
||||
<script>
|
||||
new $.zui.Messager("扩展:' . $val . '- 未安装,可能导致图片上传失败! 请尽快修复。", {
|
||||
type: "black", // 定义颜色主题
|
||||
icon: "exclamation-sign" // 定义消息图标
|
||||
}).show();
|
||||
</script>
|
||||
';
|
||||
}
|
||||
}
|
||||
// 检测是否更改默认域名
|
||||
if (strstr('localhost|127.0.0.1', $_SERVER['HTTP_HOST'])) {
|
||||
echo '
|
||||
<script>
|
||||
new $.zui.Messager("请修改默认域名,可能会导致网站访问异常! ", {type: "black" // 定义颜色主题
|
||||
}).show();
|
||||
</script>
|
||||
';
|
||||
}
|
||||
// 检测是否修改默认密码
|
||||
if ($config['password'] === 'e6e061838856bf47e1de730719fb2609') {
|
||||
echo '
|
||||
<script>
|
||||
new $.zui.Messager("请修改默认密码,否则会有泄露风险! ", {type: "warning" // 定义颜色主题
|
||||
}).show();
|
||||
</script>
|
||||
';
|
||||
}
|
||||
// 上部内容
|
||||
if (!is_file(APP_ROOT . '/config/EasyIamge.lock')) {
|
||||
echo '
|
||||
<div class="modal fade" id="myModal-1">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
if (is_file(APP_ROOT . '/config/EasyIamge.lock')) exit; // 查询锁定弹窗文件是否存在
|
||||
file_put_contents(APP_ROOT . '/config/EasyIamge.lock', '安装环境检测锁定文件,如需再次展示请删除此文件!', FILE_APPEND | LOCK_EX);
|
||||
clearstatcache();
|
||||
?>
|
||||
<div class="modal fade" id="myModal-1">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">
|
||||
<i class="icon icon-heart"> </i><a href="https://blog.png.cm/846.html" target="_blank">简单图床-EasyImage2.0</a> 安装环境检测</h4>
|
||||
<i class="icon icon-heart"> </i><a href="https://blog.png.cm/902.html" target="_blank">简单图床-EasyImage2.0</a> 安装环境检测
|
||||
</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<h4>说明:</h4>
|
||||
<h5>1. 建议使用<font color="red">PHP7.0</font>及以上版本;</h5>
|
||||
<h5>2. 上传失败大部分是由于<font color="red">upload_max_filesize、post_max_size、文件权限</font>设置不正确;</h5>
|
||||
<h5>3. 本程序主要用到<font color="red">Fileinfo、GD、Openssl</font>扩展,如果缺失会导致无法访问管理面板以及上传/删除图片。</h5>
|
||||
<h5>1. 建议使用<span style="color:red">PHP7.0</span>及以上版本;</h5>
|
||||
<h5>2. 上传失败大部分是由于<span style="color:red">upload_max_filesize、post_max_size、文件权限</span>设置不正确;</h5>
|
||||
<h5>3. 本程序主要用到<span style="color:red">Fileinfo、GD、Openssl</span>扩展,如果缺失会导致无法访问管理面板以及上传/删除图片。</h5>
|
||||
<hr />
|
||||
<h4>EasyImage2.0 基础检测:</h4>
|
||||
当前PHP版本:<font style="color:green">' . phpversion() . '</font><br/>';
|
||||
|
||||
echo '<font color="green">upload_max_filesize</font> - PHP上传最大值:' . ini_get('upload_max_filesize');
|
||||
echo '<br /><font color="green">post_max_size</font> - POST上传最大值:' . ini_get('post_max_size') . '<br />';
|
||||
// 扩展检测
|
||||
$expand = array('fileinfo', 'gd', 'openssl', 'imagick');
|
||||
foreach ($expand as $val) {
|
||||
if (extension_loaded($val)) {
|
||||
echo '
|
||||
<font color="green">' . $val . "</font> - 已安装
|
||||
<br />";
|
||||
} else {
|
||||
echo "
|
||||
<script language='javascript'>alert('$val - 未安装')</script>";
|
||||
echo '
|
||||
<font color="red">' . $val . " - 未安装</font>
|
||||
<br />";
|
||||
}
|
||||
}
|
||||
// 文件权限检测
|
||||
$quanxian = substr(base_convert(fileperms("file.php"), 10, 8), 3);
|
||||
if (IS_WIN) {
|
||||
echo '
|
||||
<font style="color:green">file.php 文件可执行</font><br/>
|
||||
<font style="color:green">/i 目录可读写</font><br/>
|
||||
';
|
||||
}
|
||||
if (!IS_WIN) {
|
||||
if ($quanxian !== '755' and !is_writable(APP_ROOT . '/i/')) {
|
||||
echo '
|
||||
<p style="color:red">file.php 文件不可执行</font>><br/>
|
||||
<p style="color:red">/i 目录可读写</font>><br/>
|
||||
';
|
||||
} else {
|
||||
echo '
|
||||
<font style="color:green">file.php 文件可执行</font><br/>
|
||||
<font style="color:green">/i 目录可读写</font><br/>
|
||||
';
|
||||
}
|
||||
}
|
||||
echo '</div>
|
||||
<p>当前PHP版本:<sapn style="color:green"><?php echo phpversion() ?></sapn>
|
||||
</p>
|
||||
<p>upload_max_filesize - PHP上传最大值:<sapn style="color:green"><?php echo ini_get('upload_max_filesize'); ?></sapn>
|
||||
</p>
|
||||
<p>post_max_size - POST上传最大值:<sapn style="color:green"><?php echo ini_get('post_max_size'); ?></sapn>
|
||||
</p>
|
||||
<?php
|
||||
// 扩展检测
|
||||
$expand = array('fileinfo', 'gd', 'openssl', 'imagick');
|
||||
foreach ($expand as $val) {
|
||||
if (extension_loaded($val)) {
|
||||
echo '
|
||||
<p style="color:green">' . $val . " - 已安装</p>";
|
||||
} else {
|
||||
echo "<script language='javascript'>alert('$val - 未安装')</script>";
|
||||
echo '<p style="color:red">' . $val . " - 未安装</p>";
|
||||
}
|
||||
}
|
||||
// 文件权限检测
|
||||
$quanxian = substr(base_convert(fileperms("file.php"), 10, 8), 3);
|
||||
if (IS_WIN) {
|
||||
echo '
|
||||
<p style="color:green">file.php 文件可执行</p>
|
||||
<p style="color:green">/i 目录可读写</p>
|
||||
';
|
||||
}
|
||||
if (!IS_WIN) {
|
||||
if ($quanxian !== '755' and !is_writable(APP_ROOT . '/i/')) {
|
||||
echo '
|
||||
<p style="color:red">file.php 文件不可执行</font>>
|
||||
<p style="color:red">/i 目录可读写</font>>
|
||||
';
|
||||
} else {
|
||||
echo '
|
||||
<p style="color:green">file.php 文件可执行</p>
|
||||
<p style="color:green">/i 目录可读写</p>
|
||||
';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<div class="modal-footer" style="text-align:left">
|
||||
<p class="text-primary">安装环境检测弹窗仅在第一次访问主页时展示,弹出后会在<code>config</code>目录下生成<code>EasyIamge.lock</code>文件,如需再次弹出请删除<code>EasyIamge.lock</code>文件。</p>
|
||||
<p class="text-primary">刷新或按<kbd>ESC</kbd>关闭安装环境检测弹窗。</p>
|
||||
<p class="text-primary">安装环境检测弹窗仅在第一次访问主页时展示,弹出后会在<code>config</code>目录下生成<code>EasyIamge.lock</code>文件,如需再次弹出请删除<code>EasyIamge.lock</code>文件。</p>
|
||||
<p class="text-primary">刷新或按<kbd>ESC</kbd>关闭安装环境检测弹窗。</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$("#myModal-1").modal({
|
||||
keyboard: true,
|
||||
moveable: true,
|
||||
backdrop: "static",//点击空白处不关闭对话框
|
||||
show: true
|
||||
})
|
||||
alert("初次打开会检测环境配置,请仔细看!!");
|
||||
</script>
|
||||
';
|
||||
file_put_contents(APP_ROOT . '/config/EasyIamge.lock', '安装环境检测锁定文件,如需再次展示请删除此文件!', FILE_APPEND | LOCK_EX);
|
||||
clearstatcache();
|
||||
}
|
||||
<script>
|
||||
$("#myModal-1").modal({
|
||||
keyboard: true,
|
||||
moveable: true,
|
||||
backdrop: "static", //点击空白处不关闭对话框
|
||||
show: true
|
||||
})
|
||||
alert("初次打开会检测环境配置,请仔细看!!");
|
||||
</script>
|
|
@ -0,0 +1,79 @@
|
|||
<?php
|
||||
// 扩展检测
|
||||
$expand = array('fileinfo', 'iconv', 'gd', 'mbstring', 'openssl',);
|
||||
foreach ($expand as $val) {
|
||||
if (!extension_loaded($val)) {
|
||||
echo '
|
||||
<script>
|
||||
new $.zui.Messager("扩展:' . $val . '- 未安装,可能导致图片上传失败! 请尽快修复。",{
|
||||
type: "black", // 定义颜色主题
|
||||
icon: "exclamation-sign" // 定义消息图标
|
||||
}).show();
|
||||
</script>
|
||||
';
|
||||
}
|
||||
}
|
||||
// 检测是否更改默认域名
|
||||
if (strstr('localhost|127.0.0.1', $_SERVER['HTTP_HOST'])) {
|
||||
echo '
|
||||
<script>
|
||||
new $.zui.Messager("请修改默认域名,可能会导致网站访问异常! ",{
|
||||
type: "black" // 定义颜色主题
|
||||
}).show();
|
||||
</script>
|
||||
';
|
||||
}
|
||||
// 检测是否修改默认密码
|
||||
if ($config['password'] === 'e6e061838856bf47e1de730719fb2609') {
|
||||
echo '
|
||||
<script>
|
||||
new $.zui.Messager("请修改默认密码,否则会有泄露风险! ",{
|
||||
type: "warning" // 定义颜色主题
|
||||
}).show();
|
||||
</script>
|
||||
';
|
||||
}
|
||||
// 检测监黄接口是否可以访问
|
||||
if ($configp['checkImg'] !== 0) {
|
||||
|
||||
if ($config['checkImg'] == 1) {
|
||||
|
||||
if (!@IP_URL_Ping('api.moderatecontent.com', 80, 1)) {
|
||||
echo '
|
||||
<script>
|
||||
new $.zui.Messager("moderatecontent 鉴黄接口无法ping通! ",{
|
||||
type: "warning" // 定义颜色主题
|
||||
}).show();
|
||||
</script>
|
||||
';
|
||||
}
|
||||
}
|
||||
|
||||
if ($config['checkImg'] == 2) {
|
||||
|
||||
$ip = parse_url($config['nsfwjs_url'])['host'];
|
||||
$port = parse_url($config['nsfwjs_url'])['port'];
|
||||
|
||||
if (filter_var($ip, FILTER_VALIDATE_IP)) {
|
||||
if (!@IP_URL_Ping($ip, $port, 1)) {
|
||||
echo '
|
||||
<script>
|
||||
new $.zui.Messager("' . $ip . $port . ' 鉴黄接口无法ping通! ",{
|
||||
type: "warning" // 定义颜色主题
|
||||
}).show();
|
||||
</script>
|
||||
';
|
||||
}
|
||||
} else {
|
||||
if (!@IP_URL_Ping($ip, 80, 1)) {
|
||||
echo '
|
||||
<script>
|
||||
new $.zui.Messager("' . $ip . ' 鉴黄接口无法ping通! ",{
|
||||
type: "warning" // 定义颜色主题
|
||||
}).show();
|
||||
</script>
|
||||
';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -39,10 +39,8 @@
|
|||
</p>
|
||||
</footer>
|
||||
|
||||
<?php
|
||||
// 环境检测
|
||||
checkEnv($config['checkEnv']);
|
||||
?>
|
||||
<?php /** 环境检测 */ if ($config['checkEnv']) require_once APP_ROOT . '/application/check.php'; ?>
|
||||
|
||||
<script>
|
||||
// js 获取当前网址二维码
|
||||
var qrcode = new QRCode(document.getElementById("qrcode"), {
|
||||
|
|
|
@ -582,7 +582,6 @@ function deldir($dir)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 图片监黄curl 访问网站并返回解码过的json信息
|
||||
* @param $img string 图片url
|
||||
|
@ -745,7 +744,6 @@ function re_checkImg($name)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 创建缩略图
|
||||
* @param $imgName string 需要创建缩略图的名称
|
||||
|
@ -1049,3 +1047,21 @@ function checkIP($ipNow = null, $ipList = null, $model = false)
|
|||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试IP或者url是否可以ping通
|
||||
* @param $host string ip或网址
|
||||
* @param $port int 端口
|
||||
* @param $timeout float 过期时间
|
||||
* @return bool true|false
|
||||
*/
|
||||
function IP_URL_Ping($host, $port, $timeout)
|
||||
{
|
||||
$errno = 444;
|
||||
$errstr = 'fSockOpen 错误';
|
||||
$fP = fSockOpen($host, $port, $errno, $errstr, $timeout);
|
||||
if (!$fP) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -4,8 +4,8 @@ $config=Array
|
|||
'title'=>'简单图床 - EasyImage',
|
||||
'keywords'=>'简单图床,easyimage,无数据库图床,PHP多图长传程序,自适应页面,HTML5,markdown,bbscode,一键复制',
|
||||
'description'=>'简单图床EasyImage是一款支持多文件上传的无数据库图床,可以完美替代PHP多图上传程序,最新html5自适应页面兼容手机电脑,上传后返回图片直链,markdown图片,论坛贴图bbscode链接,简单方便支持一键复制,支持多域名,api上传。',
|
||||
'tips'=>'<a><li class="icon icon-bullhorn text-muted"> 单文件≤10M,单次上传≤30张</li></a>
|
||||
<a href="https://github.com/icret/EasyImages2.0" target="_black"><i class="icon icon-heart"> 简单图床是一款开源图床, 支持多文件上传无数据库</i></a>
|
||||
'tips'=>'<a><li class="icon icon-bullhorn text-muted"> 单文件≤10M,单次上传≤30张</li></a>
|
||||
<a href="https://github.com/icret/EasyImages2.0" target="_black"><i class="icon icon-heart"> 简单图床是一款开源图床, 支持多文件上传无数据库</i></a>
|
||||
<a href="https://github.com/icret/EasyImages2.0" target="_black"><i class="icon icon-github"> 如果你喜欢这种图床风格就下载喔 (๑•̀ㅂ•́)و✧</i></a>',
|
||||
'domain'=>'http://127.0.0.1',
|
||||
'imgurl'=>'http://127.0.0.1',
|
||||
|
@ -46,18 +46,17 @@ $config=Array
|
|||
'checkImg'=>0,
|
||||
'checkImg_value'=>50,
|
||||
'moderatecontent_key'=>'',
|
||||
'nsfwjs_url'=>'http://172.17.0.2:3307/api/nsfw/classify?url=',
|
||||
'footer'=>'<a href="/admin/terms.php" target="_blank">请勿上传违反中国政策的图片</a>
|
||||
<script>
|
||||
var _hmt = _hmt || [];
|
||||
(function() {
|
||||
var hm = document.createElement("script");
|
||||
hm.src = "https://hm.baidu.com/hm.js?c790ac2bdc2f385757ecd0183206108d";
|
||||
var s = document.getElementsByTagName("script")[0];
|
||||
s.parentNode.insertBefore(hm, s);
|
||||
})();
|
||||
</script>
|
||||
',
|
||||
'nsfwjs_url'=>'',
|
||||
'footer'=>'<a href="/admin/terms.php" target="_blank">请勿上传违反中国政策的图片</a>
|
||||
<script>
|
||||
var _hmt = _hmt || [];
|
||||
(function() {
|
||||
var hm = document.createElement("script");
|
||||
hm.src = "https://hm.baidu.com/hm.js?c790ac2bdc2f385757ecd0183206108d";
|
||||
var s = document.getElementsByTagName("script")[0];
|
||||
s.parentNode.insertBefore(hm, s);
|
||||
})();
|
||||
</script>',
|
||||
'ad_top'=>0,
|
||||
'ad_top_info'=>' <!--广告 按照这个范例替换相应链接,如果想多几个广告,就多复制几个-->
|
||||
<div class="col-md-12" style="text-align: center;margin:2px;">
|
||||
|
@ -82,5 +81,5 @@ var _hmt = _hmt || [];
|
|||
'check_ip_model'=>0,
|
||||
'check_ip_list'=>'',
|
||||
'version'=>'2.4.8',
|
||||
'form'=>'2022-02-01 03:21:02'
|
||||
'form'=>'2022-02-02 03:25:00'
|
||||
);
|
|
@ -78,22 +78,22 @@ function checkPASS($name)
|
|||
</tr>
|
||||
<tr>
|
||||
<td>Fileinfo</td>
|
||||
<td>必须支持</td>
|
||||
<td>必须支持 | 安装后重启PHP</td>
|
||||
<td> <?php checkPASS($fileinfo); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>GD</td>
|
||||
<td>必须支持</td>
|
||||
<td>必须支持 | 安装后重启PHP</td>
|
||||
<td> <?php checkPASS($gd); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>openssl</td>
|
||||
<td>建议支持(用于删除文件,PHP>7.0)</td>
|
||||
<td>建议支持 | 生成加密删除url,需PHP>7.0</td>
|
||||
<td> <?php checkPASS($openssl); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>file.php</td>
|
||||
<td>0755可执行权限(非windows系统)</td>
|
||||
<td>0755可执行权限 | 非windows系统</td>
|
||||
<td> <?php checkPASS($file_php); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -103,7 +103,7 @@ function checkPASS($name)
|
|||
</tr>
|
||||
<tr>
|
||||
<td>.user.ini</td>
|
||||
<td>防止跨目录访问和读取文件-><a href="https://lnmp.org/faq/lnmp-vhost-add-howto.html#user.ini" target="_blank">删除方法</a></td>
|
||||
<td>防跨目录读写文件 | 删除方法:<a href="https://lnmp.org/faq/lnmp-vhost-add-howto.html#user.ini" target="_blank"> LNMP</a> | <a href="https://www.bt.cn/bbs/forum.php?mod=viewthread&tid=36605&page=1#pid122035" target="_blank">BT宝塔</a></td>
|
||||
<td><?php checkPASS($userINI); ?></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
Loading…
Reference in New Issue