for new version

pull/141/head
icret 2022-05-18 13:38:23 +00:00
parent e7d6ed0274
commit 32d470dd22
139 changed files with 201 additions and 146 deletions

7
README.md Executable file → Normal file
View File

@ -180,11 +180,14 @@ $HTTP["url"] =~ "^/(i|public)/" {
<details><summary>点击查看2.0版更新日志</summary>
* 2022-05-05 v2.6.3 deving
* 2022-05-18 v2.6.3 Deving 此版本正在开发中, 尚未发布
- 增加读取上传日志
- 增加广场浏览往日限制
- 有助于防爬虫抓取
- 修复广场->信息中无法显示Exif
- 文件管理中图片使用缩略图显示
- 更改广场->信息中图片长宽获取方式
- 删除图片详情页Exif信息
- 优化图片详情页
- 优化广场UI
* 2022-05-04 v2.6.2

45
admin/admin.inc.php Executable file → Normal file
View File

@ -51,7 +51,7 @@ if (isset($_POST['add_token_id'])) {
cache_write($config_file, $new_config, 'tokenList');
echo '
<script>
new $.zui.Messager("上传用户添加成功!", {
new $.zui.Messager("API Token 添加成功!", {
type: "primary", // 定义颜色主题
icon: "ok-sign" // 定义消息图标
}).show();
@ -75,7 +75,7 @@ if (isset($_GET['stop_token'])) {
cache_write($config_file, $new_config, 'tokenList');
echo '
<script>
new $.zui.Messager("禁用Token成功!", {
new $.zui.Messager("禁用 API Token 成功!", {
type: "primary", // 定义颜色主题
icon: "ok-sign" // 定义消息图标
}).show();
@ -91,7 +91,7 @@ if (isset($_GET['delete_token'])) {
cache_write($config_file, $tokenList, 'tokenList');
echo '
<script>
new $.zui.Messager("删除Token用户成功!", {
new $.zui.Messager("删除 API Token 成功!", {
type: "primary", // 定义颜色主题
icon: "ok-sign" // 定义消息图标
}).show();
@ -453,8 +453,8 @@ if (isset($_GET['recycle_reimg'])) {
</form>
<h5 class="page-header">Token列表: <?php if (!$config['token_path_status']) echo '<small>* 部分按钮需开启Token分离才能激活, 删除后不可恢复</small>'; ?></h5>
<p class="text-primary">API调用地址: <code><?php echo $config['domain']; ?>/api/index.php</code></p>
<div class="table-responsive">
<table class="table table-condensed table-hover table-bordered visible-xs visible-sm" style="margin-top: 10px;">
<div class="table-responsive table-condensed">
<table class="table table-hover table-bordered visible-xs visible-sm" style="margin-top: 10px;">
<thead>
<tr>
<th>ID</th>
@ -693,10 +693,10 @@ if (isset($_GET['recycle_reimg'])) {
</div>
</div>
</div>
<button type="button" class="btn btn-mini btn-primary" data-moveable="true" data-remote="/application/read_upload_logs.php" data-toggle="modal" data-scroll-inside="true" data-title="可以使用 Ctrl+F 搜索指定信息" data-icon="info"><i class="icon icon-info" data-toggle="tooltip" title="最大读取壹佰万上传日志">当月日志</i></button>
<div class="form-group">
<input type="hidden" class="form-control" name="update" value="<?php echo date("Y-m-d H:i:s"); ?>" placeholder="隐藏的保存">
</div>
<button type="submit" class="btn btn-info" name="delDir" value="thumbnails/" data-toggle="tooltip" title="已缓存: <?php echo getFileNumber(APP_ROOT . $config['path'] . 'thumbnails/') . '文件 | 占用' . getDistUsed(getDirectorySize(APP_ROOT . $config['path'] . 'thumbnails/')); ?>" onClick="return confirm('确认要清理缓存?\n* 删除文件夹后将无法恢复! ');">清理缓存</button>
<button type="submit" class="btn btn-primary">保存</button>
</form>
</div>
@ -705,8 +705,8 @@ if (isset($_GET['recycle_reimg'])) {
<p>key申请地址: <a href="https://client.moderatecontent.com/" target="_blank">https://client.moderatecontent.com/</a></p>
<p>获得key后打开->API 设置->Moderate Key->填入key</p>
<p>为了访问速度,仅显示最近20张图片;鉴黄需要在图床安全->图片鉴黄中开启</p>
<div class="table-responsive">
<table class="table table-hover table-bordered table-condensed table-striped">
<div class="table-responsive table-condensed">
<table class="table table-hover table-bordered table-striped">
<thead>
<tr>
<th>序号</th>
@ -727,16 +727,17 @@ if (isset($_GET['recycle_reimg'])) {
$file_path = $config['path'] . 'suspic/' . $cache_file[$i]; // 相对路径
$file_size = getDistUsed(filesize($file_cache_path)); // 大小
$filen_name = $cache_file[$i]; // 名称
$url = $config['domain'] . $config['path'] . 'suspic/' . $cache_file[$i]; // 网络连接
$url = $config['domain'] . $file_path; // 网络连接
$unlink_img = $config['domain'] . '/application/del.php?url=' . $file_path; // 删除连接
?>
<tr>
<td><?php echo $i; ?></td>
<td><img data-toggle="lightbox" src="<?php echo get_online_thumbnail($file_path); ?>" data-image="<?php echo $url; ?>" class="img-thumbnail"></td>
<td><a href="<?php echo $url; ?>" data-toggle="lightbox" data-group="suspic-image-group"><img src="<?php echo get_online_thumbnail($file_path); ?>" class="img-rounded" width="100px"></a></td>
<td><?php echo $filen_name; ?></td>
<td><?php echo $file_size; ?></td>
<td>
<a class="btn btn-mini" href="<?php echo $url; ?>" target="_blank">新窗口</a>
<a class="btn btn-mini" href="<?php echo $url; ?>" target="_blank">源图</a>
<a class="btn btn-mini" href="/application/info.php?img=<?php echo $file_path; ?>" target="_blank">信息</a>
<a class="btn btn-mini btn-success" href="?suspic_reimg=<?php echo $filen_name; ?>">恢复</a>
<a class="btn btn-mini btn-danger" href="<?php echo $unlink_img; ?>" target="_blank">删除</a>
</td>
@ -965,8 +966,8 @@ if (isset($_GET['recycle_reimg'])) {
</div>
</form>
<h5>* 开启用户分离后删除上传按钮激活, 删除后不可恢复</h5>
<div class="table-responsive">
<table class="table table-condensed table-hover table-bordered">
<div class="table-responsive table-condensed">
<table class="table table-hover table-bordered">
<thead>
<tr>
<th>登录账号</th>
@ -1014,8 +1015,8 @@ if (isset($_GET['recycle_reimg'])) {
<div class="tab-pane fade" id="Content11">
<h5 class="header-dividing">图片回收<small> 用户自行删除的会显示在这个页面</small></h5>
<p>为了访问速度,仅显示最近20张图片; 图片回收需要在图床安全->图片回收中开启</p>
<div class="table-responsive">
<table class="table table-hover table-bordered table-condensed table-striped">
<div class="table-responsive table-condensed">
<table class="table table-hover table-bordered table-striped">
<thead>
<tr>
<th>序号</th>
@ -1036,16 +1037,17 @@ if (isset($_GET['recycle_reimg'])) {
$file_path = $config['path'] . 'recycle/' . $cache_file[$i]; // 相对路径
$file_size = getDistUsed(filesize($file_cache_path)); // 大小
$filen_name = $cache_file[$i]; // 名称
$url = $config['domain'] . $config['path'] . 'recycle/' . $cache_file[$i]; // 网络连接
$url = $config['domain'] . $file_path; // 网络连接
$unlink_img = $config['domain'] . '/application/del.php?url=' . $file_path; // 删除连接
?>
<tr>
<td><?php echo $i; ?></td>
<td><img data-toggle="lightbox" src="<?php echo get_online_thumbnail($file_path); ?>" data-image="<?php echo $url; ?>" class="img-thumbnail"></td>
<td><a href="<?php echo $url; ?>" data-toggle="lightbox" data-group="recycle-image-group"><img src="<?php echo get_online_thumbnail($file_path); ?>" class="img-rounded" width="100px"></a></td>
<td><?php echo $filen_name; ?></td>
<td><?php echo $file_size; ?></td>
<td>
<a class="btn btn-mini" href="<?php echo $url; ?>" target="_blank">新窗口</a>
<a class="btn btn-mini" href="<?php echo $url; ?>" target="_blank">源图</a>
<a class="btn btn-mini" href="/application/info.php?img=<?php echo $file_path; ?>" target="_blank">信息</a>
<a class="btn btn-mini btn-success" href="?recycle_reimg=<?php echo $filen_name; ?>">恢复</a>
<a class="btn btn-mini btn-danger" href="<?php echo $unlink_img; ?>" target="_blank">删除</a>
</td>
@ -1166,10 +1168,13 @@ if (isset($_GET['recycle_reimg'])) {
</form>
</div>
<div class="tab-pane fade" id="Content14">
<!-- <h4>文件管理 <small>Tinyfilemanager是由作者定制开发,非必要请勿替换</small></h4> -->
<h5 class="header-dividing">文件管理 <small>Tinyfilemanager是由作者定制开发,非必要请勿替换</small></h5>
<a class="btn btn-mini btn-primary" href="/admin/manager.php?p=<?php echo date('Y/m/d'); ?> " target="_blank" data-toggle="tooltip" title="使用Tinyfilemanager管理文件"><i class="icon icon-folder-open"> 文件管理</i></a>
<!-- <h4>删除文件 <small>* 删除后不可恢复</small></h4> -->
<h5 class="header-dividing">清理缓存 <small>已缓存: <?php echo getFileNumber(APP_ROOT . $config['path'] . 'thumbnails/') . '文件 | 占用' . getDistUsed(getDirectorySize(APP_ROOT . $config['path'] . 'thumbnails/')); ?></small></h5>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
<button type="submit" class="btn btn-mini btn-success" name="delDir" value="thumbnails/" onClick="return confirm('确认要清理缓存?\n* 删除文件夹后将无法恢复! ');"><i class="icon icon-trash"> 清理缓存</i></button>
</form>
<h5 class="header-dividing">删除文件 <small>* 删除后不可恢复</small></h5>
<form class="form-inline" method="get" action="../application/del.php" id="form" name="delForm" target="_blank">
<p id="delimgurl"></p>

0
admin/chart.php Executable file → Normal file
View File

0
admin/index.php Executable file → Normal file
View File

4
admin/manager.php Executable file → Normal file
View File

@ -2106,8 +2106,8 @@ $tableTheme = (FM_THEME == "dark") ? "text-white bg-dark table-dark" : "bg-white
<?php
if (in_array(strtolower(pathinfo($f, PATHINFO_EXTENSION)), array('gif', 'jpg', 'jpeg', 'png', 'bmp', 'ico', 'svg', 'webp', 'avif'))): ?>
<?php $imagePreview = fm_enc(FM_ROOT_URL . (FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $f); ?>
<!-- 分组图片浏览 -->
<a href="<?php echo $imagePreview ?>" data-toggle="lightbox" data-group="image-group-1"><img src="<?php echo $imagePreview ?>" class="img-rounded" width="100px" height="100px" alt="<?php echo fm_enc($f) ?>"></a>
<!-- 分组图片浏览 -->
<a href="<?php echo $imagePreview;?>" data-toggle="lightbox" data-group="manager-group"><img src="/application/thumb.php?img=<?php echo parse_url($imagePreview)['path'];?>" class="img-rounded" width="100px" height="100px" alt="<?php echo fm_enc($f);?>"></a>
<?php else: ?>
<a href="<?php echo $filelink ?>" title="<?php echo $f ?>">
<?php endif; ?>

0
admin/terms.php Executable file → Normal file
View File

0
admin/zui.chart.php Executable file → Normal file
View File

0
api/index.php Executable file → Normal file
View File

0
api/public.php Executable file → Normal file
View File

0
application/TimThumb.php Executable file → Normal file
View File

0
application/WaterMask.php Executable file → Normal file
View File

0
application/captcha.php Executable file → Normal file
View File

0
application/chart.php Executable file → Normal file
View File

0
application/check.php Executable file → Normal file
View File

92
application/check_admin.inc.php Executable file → Normal file
View File

@ -50,51 +50,6 @@ if (is_local($config['domain'])) {
';
}
// 检测监黄接口是否可以访问
if ($config['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>
';
}
}
}
}
// 检测是否存在.user.ini
if (file_exists(APP_ROOT . '/.user.ini')) {
echo '
@ -108,7 +63,7 @@ if (file_exists(APP_ROOT . '/.user.ini')) {
}
// 检查当前版本与GitHub版本
if (@getVersion() !== $config['version']) {
if (getVersion() !== $config['version']) {
echo '
<script>
new $.zui.Messager("当前版本与GitHub不一致,请检查当前是否最新版本!",{
@ -151,3 +106,48 @@ if (!is_file(APP_ROOT . $config['textFont'])) {
</script>
';
}
// 检测监黄接口是否可以访问
if ($config['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>
';
}
}
}
}

0
application/class.thumb.php Executable file → Normal file
View File

0
application/class.upload.php Executable file → Normal file
View File

0
application/class.version.php Executable file → Normal file
View File

0
application/compress/Imagick/class.Imgcompress.php Executable file → Normal file
View File

0
application/compress/TinyImg/TinyImg.php Executable file → Normal file
View File

0
application/compress/TinyImg/cacert.pem Executable file → Normal file
View File

0
application/compress/function.compress.php Executable file → Normal file
View File

0
application/compressing.php Executable file → Normal file
View File

0
application/del.php Executable file → Normal file
View File

26
application/footer.php Executable file → Normal file
View File

@ -48,19 +48,22 @@ if ($config['notice_status'] == 1 && !empty($config['notice'])) : ?>
<!-- 二维码按钮 -->
<a data-toggle="modal" href="#qr" title="使用手机扫描二维码访问"><i class="icon icon-qrcode hidden-xs inline-block"></i></a>
<?php
// 登录与退出
if (is_who_login('admin') || is_who_login('guest')) {
echo '<a href="' . $config['domain'] . '/admin/index.php?login=logout" title="退出账号"><i class="icon icon-signout"></i></a>';
} else {
echo '<a href="' . $config['domain'] . '/admin/index.php" title="账号登录"><i class="icon icon-user"></i></a>';
}
?>
// 登录与退出
if (is_who_login('admin') || is_who_login('guest')) : ?>
<a href="<?php echo $config['domain']; ?>/admin/index.php?login=logout" title="退出账号"><i class="icon icon-signout"></i></a>
<? else : ?>
<a href="<?php echo $config['domain']; ?>/admin/index.php" title="账号登录"><i class="icon icon-user"></i></a>
<?php endif; ?>
</p>
</footer>
<link href="<?php static_cdn(); ?>/public/static/nprogress/nprogress.min.css" rel="stylesheet">
<script src="<?php static_cdn(); ?>/public/static/nprogress/nprogress.min.js"></script>
<script src="<?php static_cdn(); ?>/public/static/qrcode/qrcode.min.js"></script>
<script>
// NProgress
NProgress.start();
NProgress.done();
// 导航状态
$('.nav-pills').find('a').each(function() {
if (this.href == document.location.href) {
@ -68,10 +71,6 @@ if ($config['notice_status'] == 1 && !empty($config['notice'])) : ?>
}
});
// NProgress
NProgress.start();
NProgress.done();
// js 获取当前网址二维码
var qrcode = new QRCode(document.getElementById("qrcode"), {
text: window.location.href,
@ -98,9 +97,10 @@ if ($config['notice_status'] == 1 && !empty($config['notice'])) : ?>
moveable: "inside",
rememberPos: true,
scrollInside: true
}).on('hidden.zui.modal', function() {
// 只有用户手动关闭才会存储cookie,避免不看公告直接刷新
document.cookie = "noticed =1";
document.cookie = "noticed = 1";
console.log('网站公告已显示完毕')
})
}
@ -114,7 +114,7 @@ if ($config['notice_status'] == 1 && !empty($config['notice'])) : ?>
// console
console.log("%cEasyImage2.0", "background: rgba(252,234,187,1);background: -moz-linear-gradient(left, rgba(252,234,187,1) 0%, rgba(175,250,77,1) 12%, rgba(0,247,49,1) 28%, rgba(0,210,247,1) 39%,rgba(0,189,247,1) 51%, rgba(133,108,217,1) 64%, rgba(177,0,247,1) 78%, rgba(247,0,189,1) 87%, rgba(245,22,52,1) 100%);background: -webkit-gradient(left top, right top, color-stop(0%, rgba(252,234,187,1)), color-stop(12%, rgba(175,250,77,1)), color-stop(28%, rgba(0,247,49,1)), color-stop(39%, rgba(0,210,247,1)), color-stop(51%, rgba(0,189,247,1)), color-stop(64%, rgba(133,108,217,1)), color-stop(78%, rgba(177,0,247,1)), color-stop(87%, rgba(247,0,189,1)), color-stop(100%, rgba(245,22,52,1)));background: -webkit-linear-gradient(left, rgba(252,234,187,1) 0%, rgba(175,250,77,1) 12%, rgba(0,247,49,1) 28%, rgba(0,210,247,1) 39%, rgba(0,189,247,1) 51%, rgba(133,108,217,1) 64%, rgba(177,0,247,1) 78%, rgba(247,0,189,1) 87%, rgba(245,22,52,1) 100%);background: -o-linear-gradient(left, rgba(252,234,187,1) 0%, rgba(175,250,77,1) 12%, rgba(0,247,49,1) 28%, rgba(0,210,247,1) 39%, rgba(0,189,247,1) 51%, rgba(133,108,217,1) 64%, rgba(177,0,247,1) 78%, rgba(247,0,189,1) 87%, rgba(245,22,52,1) 100%);background: -ms-linear-gradient(left, rgba(252,234,187,1) 0%, rgba(175,250,77,1) 12%, rgba(0,247,49,1) 28%, rgba(0,210,247,1) 39%, rgba(0,189,247,1) 51%, rgba(133,108,217,1) 64%, rgba(177,0,247,1) 78%, rgba(247,0,189,1) 87%, rgba(245,22,52,1) 100%);background: linear-gradient(to right, rgba(252,234,187,1) 0%, rgba(175,250,77,1) 12%, rgba(0,247,49,1) 28%, rgba(0,210,247,1) 39%, rgba(0,189,247,1) 51%, rgba(133,108,217,1) 64%, rgba(177,0,247,1) 78%, rgba(247,0,189,1) 87%, rgba(245,22,52,1) 100%);filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fceabb', endColorstr='#f51634', GradientType=1 );font-size:2.34em;font-weight:bold")
console.log('%c图床演示网站: https://png.cm \n请为本人博客 https://blog.png.cm/ 加上链接, 谢谢尊重!\n作为开发者你可以对相应的后台功能进行扩展(增删改相应代码), 但请保留代码中相关来源信息(例如: 本人博客, 邮箱等);\n本程序由 Icret 独自开发并完全开源, 碰到收费发布的请不要轻易付款; 本人仅为程序开源创作, 如非法网站使用与本人无关, 请勿用于非法用途.%c ', 'color: #eaad1a; padding:5px 0; border:1px solid #448ef6; font-size:12px;', '');
console.log('%c图床演示网站: https://png.cm\n作为开发者你可以对相应的后台功能进行扩展(增删改相应代码), 但请保留代码中相关来源信息(例如: 本人博客, 邮箱等);\n本程序由 Icret 独自开发并完全开源, 碰到收费发布的请不要轻易付款; 本人仅为程序开源创作, 如非法网站使用与本人无关, 请勿用于非法用途.%c ', 'color: #eaad1a; padding:5px 0; border:1px solid #448ef6; font-size:12px;', '');
</script>
</body>

28
application/function.php Executable file → Normal file
View File

@ -1346,3 +1346,31 @@ function isAnimatedGifWebp($src)
fclose($fp);
return strpos($filecontent, chr(0x21) . chr(0xff) . chr(0x0b) . 'NETSCAPE2.0') === FALSE ? false : true;
}
/**
* 读取日志
* @param filepath 文件路径
*/
function read_upload_logs($logs = null)
{
global $config;
$logs = isset($logs) ? $logs : APP_ROOT . '/admin/logs/upload/' . date('Y-m') . '.php';
if ($config['upload_logs'] == 0) {
$logs = '已经关闭了上传日志!';
} else {
if (file_exists($logs)) {
$logs = file_get_contents($logs, false, null, 274, 1000000);
$logs = str_replace(
array('{', '}}', '"', '\\', 'source:', 'date:', 'ip:', 'port:', 'user_agent:', 'path:', 'size:', 'checkImg:', 'from:'),
array('', '', '', '', '源名:', '日期:', 'IP:', '端口:', '信息:', '路径:', '大小:', '鉴黄状态:', '来源:'),
$logs
);
} else {
$logs = "日志文件不存在,可能是当前月份没有新上传日志,请尝试上传一张!";
}
}
return $logs;
}

0
application/header.php Executable file → Normal file
View File

0
application/hide.php Executable file → Normal file
View File

102
application/info.php Executable file → Normal file
View File

@ -7,12 +7,11 @@ if (!$config['show_exif_info']) exit(header('Location: ' . $config['domain'] . '
if (isset($_GET['img'])) {
// 过滤特殊符号
$getIMG = strip_tags($_GET['img']);
$exif_url = $config['domain'] . $getIMG;
$del_url = $config['domain'] . $getIMG;
} else {
// 未获取到图片地址
$getIMG = rand_imgurl() . "/public/images/404.png";
$exif_url = $config['domain'] . "/public/images/404.png";
$getIMG = "/public/images/404.png";
$del_url = "#";
}
// 开启隐藏上传目录
@ -29,7 +28,7 @@ $imgABPath = APP_ROOT . $getIMG;
// 图片是否存在
if (!file_exists($imgABPath)) {
$imgABPath = APP_ROOT . "/public/images/404.png";
$getIMG = rand_imgurl() . "/public/images/404.png";
$img_url = rand_imgurl() . "/public/images/404.png";
}
// 图片尺寸
@ -41,36 +40,44 @@ if ($config['ad_top']) echo $config['ad_top_info'];
?>
<div class="col-md-12">
<div class="col-md-6" style="text-align: center;">
<a href="<?php echo $img_url; ?>" data-toggle="lightbox" data-group="image-group-1"><img src="<?php echo $getIMG; ?>" id="img1" width="350px" height="200px" class="img-rounded" alt="<?php echo basename($getIMG); ?>"></a>
<img data-toggle="lightbox" src="<?php echo $img_url; ?>" data-image="<?php echo $img_url; ?>" id="img1" class="img-rounded" height="200px" data-caption="<?php echo pathinfo($img_url, PATHINFO_FILENAME); ?>的详细信息" alt="<?php echo $img_url; ?>" />
</div>
<div class="col-md-6">
<h4>图片名称: <?php echo pathinfo($getIMG, PATHINFO_FILENAME); ?></h4>
<h4>图片类型: <?php echo pathinfo($getIMG, PATHINFO_EXTENSION); ?></h4>
<h4>图片宽高: <span id="wh"></span>px</h4>
<h4>图片大小: <?php echo getDistUsed($imgSize); ?></h4>
<h4>图片类型: image/<?php echo pathinfo($getIMG, PATHINFO_EXTENSION); ?></h4>
<h4>图片宽高: <span id="wh"></span>px</h4>
<h4>上传时间: <?php echo date("Y-m-d H:i:s", $upTime); ?></h4>
<h4>文件操作:
<a class="btn btn-mini btn-primary" href="<?php echo $img_url; ?>" target="_blank"><i class="icon icon-picture"> 查看</i></a>
<?php if (is_who_login('admin')) : ?>
<a class="btn btn-mini btn-primary" href="/application/del.php?recycle_url=<?php echo $getIMG; ?>" target="_blank"><i class="icon icon-undo"> 回收</i></a>
<a class="btn btn-mini btn-primary" href="/application/del.php?url=<?php echo $del_url; ?>" target="_blank"><i class="icon icon-trash"> 删除</i></a>
<?php endif; ?>
</h4>
<h4 class="with-padding hl-gray"><i class="icon icon-info-sign"> 此图片来自网友上传, 不代表<a href="/admin/terms.php" target="_blank">本站立场</a>, 若有侵权, 请联系管理员删除!</i></h4>
<!-- 读取Exif信息
<h4>使用设备: <span id="makeAndModel"></span></h4>
<div class="col-md-12">
<p>
<button type="button" class="btn btn-primary btn-sm" data-toggle="collapse" data-target="#collapseExample">Exif 信息 <i class="icon icon-caret-down"></i></button>
<a class="btn btn-primary btn-sm" href="<?php echo $getIMG; ?>" target="_blank">查看图片 <i class="icon icon-picture"></i></a>
<a class="btn btn-primary btn-sm" href="/application/del.php?url=<?php echo $getIMG; ?>" target="_blank">删除图片 <i class="icon icon-trash"></i></a>
<a class="btn btn-primary btn-sm" href="<php echo $img_url; ?>" target="_blank">查看图片 <i class="icon icon-picture"></i></a>
<php if (is_who_login('admin')) : ?>
<a class="btn btn-primary btn-sm" href="/application/del.php?url=<php echo $del_url; ?>" target="_blank">删除图片 <i class="icon icon-trash"></i></a>
<php endif; ?>
</p>
<div class="collapse" id="collapseExample">
<div class="bg-primary">
<pre id="allMetaDataSpan"></pre><!-- style="background-color:transparent;"设置透明 -->
</div>
<pre id="allMetaDataSpan"></pre>
</div>
</div>
-->
</div>
</div>
<div class="col-md-12" style="margin-top: 10px;">
<div class="col-md-12" style="padding-bottom: 10px;">
<div class="col-md-6" style="padding-bottom: 10px;">
<div class="input-group">
<span class="input-group-addon"><i class="icon icon-link"></i> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
<span class="input-group-addon"><i class="icon icon-link"></i> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
<input type="text" class="form-control" id="links" onclick="copyText()" value="<?php echo $img_url; ?>">
<span class="input-group-btn"><button class="btn btn-default copyBtn1" type="button">复制</button></span>
</div>
@ -101,7 +108,7 @@ if ($config['ad_top']) echo $config['ad_top_info'];
</div>
</div>
<? /** 底部广告 */ if ($config['ad_bot']) echo $config['ad_bot_info']; ?>
<script src="<?php static_cdn(); ?>/public/static/exif/exif.js"></script>
<!-- <script src="< php static_cdn(); ?>/public/static/exif/exif.js"></script> -->
<script src="<?php static_cdn(); ?>/public/static/EasyImage.js"></script>
<script src="<?php static_cdn(); ?>/public/static/zui/lib/clipboard/clipboard.min.js"></script>
<script>
@ -175,40 +182,8 @@ if ($config['ad_top']) echo $config['ad_top_info'];
hw.innerHTML = this.width + "x" + this.height
});
/* 获取图片长宽
function getImgNaturalDimensions(oImg, callback) {
var nWidth, nHeight;
if (!oImg.naturalWidth) { // 现代浏览器
nWidth = oImg.naturalWidth;
nHeight = oImg.naturalHeight;
callback({
w: nWidth,
h: nHeight
});
} else { // IE6/7/8
var nImg = new Image();
nImg.onload = function() {
var nWidth = nImg.width,
nHeight = nImg.height;
callback({
w: nWidth,
h: nHeight
});
}
nImg.src = oImg.src;
}
}
var img = document.getElementById("img1");
getImgNaturalDimensions(img, function(dimensions) {
var hw = document.getElementById("wh");
hw.innerHTML = dimensions.w + "x" + dimensions.h
})
*/
// Exif信息
/*
window.onload = getExif;
function getExif() {
@ -227,6 +202,33 @@ if ($config['ad_top']) echo $config['ad_top_info'];
allMetaDataSpan.innerHTML = EXIF.pretty(this);;
});
}
*/
//禁用右键
document.onkeydown = function() {
var e = window.event || arguments[0];
if (e.keyCode == 123) {
// alert('禁止F12');
return false;
} else if ((e.ctrlKey) && (e.shiftKey) && (e.keyCode == 73)) {
// alert('禁止Ctrl+Shift+I');
return false;
} else if ((e.ctrlKey) && (e.keyCode == 85)) {
// alert('禁止Ctrl+u');
return false;
} else if ((e.ctrlKey) && (e.keyCode == 83)) {
// alert('禁止Ctrl+s');
return false;
}
}
// 屏蔽鼠标右键
document.oncontextmenu = function() {
new $.zui.Messager("正在查看图片详细信息", {
type: "success", // 定义颜色主题
icon: "exclamation-sign" // 定义消息图标
}).show();
return false;
}
// 更改网页标题
document.title = "图片<?php echo basename($getIMG); ?>的详细信息 - <?php echo $config['title']; ?>"
</script>

0
application/lang/class.upload.xx_XX.php Executable file → Normal file
View File

0
application/lang/class.upload.zh_CN.php Executable file → Normal file
View File

0
application/lang/class.upload.zh_TW.php Executable file → Normal file
View File

11
application/list.php Executable file → Normal file
View File

@ -131,10 +131,10 @@ if ($config['ad_top']) echo $config['ad_top_info'];
</div> -->
<div class="col-md-2 col-xs-7">
<div class="btn-group">
<a class="btn btn-sm" href="<?php echo '?' . http_build_query($httpUrl) . '&search=jpg'; ?>">JPG</a>
<a class="btn btn-sm" href="<?php echo '?' . http_build_query($httpUrl) . '&search=png'; ?>">PNG</a>
<a class="btn btn-sm" href="<?php echo '?' . http_build_query($httpUrl) . '&search=gif'; ?>">GIF</a>
<a class="btn btn-sm" href="<?php echo '?' . http_build_query($httpUrl) . '&search=webp'; ?>">Webp</a>
<a class="btn btn-mini" href="<?php echo '?' . http_build_query($httpUrl) . '&search=jpg'; ?>">JPG</a>
<a class="btn btn-mini" href="<?php echo '?' . http_build_query($httpUrl) . '&search=png'; ?>">PNG</a>
<a class="btn btn-mini" href="<?php echo '?' . http_build_query($httpUrl) . '&search=gif'; ?>">GIF</a>
<a class="btn btn-mini" href="<?php echo '?' . http_build_query($httpUrl) . '&search=webp'; ?>">Webp</a>
</div>
</div>
<!-- 按日期-->
@ -150,7 +150,7 @@ if ($config['ad_top']) echo $config['ad_top_info'];
</form>
</div>
<!-- 返回顶部-->
<div class="btn btn-sm btn-primary btn-back-to-top"><i class="icon icon-arrow-up"></i></div>
<div class="btn btn-mini btn-primary btn-back-to-top"><i class="icon icon-arrow-up"></i></div>
</div>
</div>
<link rel="stylesheet" href="<?php static_cdn(); ?>/public/static/EasyImage.css">
@ -372,6 +372,7 @@ if ($config['ad_top']) echo $config['ad_top_info'];
format: "yyyy/mm/dd/",
endDate: new Date() // 只能选当前日期之前
});
// 更改网页标题
document.title = "图床广场 - 今日上传<?php echo get_file_by_glob(APP_ROOT . config_path(), 'number'); ?>张 昨日<?php echo get_file_by_glob(APP_ROOT . $config['path'] . date("Y/m/d/", strtotime("-1 day")) . '*.*', 'number'); ?>张 - <?php echo $config['title']; ?>"
</script>

0
application/md5.php Executable file → Normal file
View File

0
application/post_del.php Executable file → Normal file
View File

2
application/process.php Executable file → Normal file
View File

@ -103,7 +103,7 @@ function write_log($filePath, $sourceName, $absolutePath, $fileSize, $from = "we
{
global $config;
$checkImg = $config['checkImg'] == true ? "Passed" : "Closed";
$checkImg = $config['checkImg'] == true ? "Enabled" : "Disabled";
// $name = trim(basename($filePath), " \t\n\r\0\x0B"); // 当前图片名称
$log = array(basename($filePath) => array( // 以上传图片名称为Array

View File

@ -0,0 +1,16 @@
<?php
/**
* 读取上传日志
*/
require_once __DIR__ . '/function.php';
// 非管理员不可访问!
if (!is_who_login('admin')) {
exit;
}
echo '<pre class="pre-scrollable bg-primary" style="font-size: 13px;">';
echo read_upload_logs();
echo '</pre>';

0
application/thumb.php Executable file → Normal file
View File

0
application/total_files.php Executable file → Normal file
View File

0
application/upload.php Executable file → Normal file
View File

10
config/api_key.php Executable file → Normal file
View File

@ -1,4 +1,4 @@
<?php
<?php
$tokenList=Array
(
'8337effca0ddfcd9c5899f3509b23657'=>Array
@ -13,10 +13,10 @@ $tokenList=Array
'expired'=>2509722743,
'add_time'=>1645722743
),
'9ffe2475f65412c76c88d09824c34a4f'=>Array
'71bedf5695ec492ad4a7f8f907d4219c'=>Array
(
'id'=>2,
'expired'=>1649393743,
'add_time'=>1649480143
'id'=>0,
'expired'=>1652080021,
'add_time'=>1652080015
)
);

0
config/config.guest.php Executable file → Normal file
View File

0
config/config.manager.php Executable file → Normal file
View File

4
config/config.php Executable file → Normal file
View File

@ -81,7 +81,7 @@ $config=Array
9=>'month'
),
'language'=>0,
'login_bg'=>'https://cdn.jsdelivr.net/gh/icret/EasyImages2.0@2.6.2/public/images/login_bg.jpg',
'login_bg'=>'https://tva3.sinaimg.cn/large/718153f4gy1gzpmuymj1rj20sg0nr76c.jpg',
'image_recycl'=>1,
'tinyfilemanager'=>1,
'delDir'=>'thumbnails/',
@ -93,7 +93,7 @@ $config=Array
'token_path_status'=>0,
'admin_path'=>'u',
'version'=>'2.6.2',
'update'=>'2022-05-09 00:40:59',
'update'=>'2022-05-18 21:32:50',
'footer'=>'<a href="/admin/terms.php" target="_blank">请勿上传违反中国政策的图片</a>
<script>
var _hmt = _hmt || [];

BIN
favicon.ico Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 525 B

0
i/.htaccess Executable file → Normal file
View File

0
i/index.html Executable file → Normal file
View File

0
index.php Executable file → Normal file
View File

0
install/README/1305032567.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

0
install/README/2657944724.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

0
install/README/3053540273.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 116 KiB

0
install/README/674074848.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

0
install/README/chmod.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

0
install/README/info.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

0
install/contorl.php Executable file → Normal file
View File

0
install/index.php Executable file → Normal file
View File

0
install/install.php Executable file → Normal file
View File

0
public/.htaccess Executable file → Normal file
View File

0
public/images/404.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

0
public/images/EasyImage2.0.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

0
public/images/alipay.jpg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

BIN
public/images/image_icon_153794.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

0
public/images/loading.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

0
public/images/watermark.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

0
public/images/wechat.jpg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

0
public/static/EasyImage.css Executable file → Normal file
View File

0
public/static/EasyImage.js Executable file → Normal file
View File

0
public/static/echarts/echarts.min.js vendored Executable file → Normal file
View File

0
public/static/exif/exif.js Executable file → Normal file
View File

0
public/static/fonts/FontAwesome.otf Executable file → Normal file
View File

0
public/static/fonts/fontawesome-webfont.eot Executable file → Normal file
View File

0
public/static/fonts/fontawesome-webfont.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 434 KiB

After

Width:  |  Height:  |  Size: 434 KiB

0
public/static/fonts/fontawesome-webfont.ttf Executable file → Normal file
View File

0
public/static/fonts/fontawesome-webfont.woff Executable file → Normal file
View File

0
public/static/fonts/fontawesome-webfont.woff2 Executable file → Normal file
View File

0
public/static/hkxzy.ttf Executable file → Normal file
View File

0
public/static/i18n/jquery.s2t.js Executable file → Normal file
View File

0
public/static/jscolor/jscolor.min.js vendored Executable file → Normal file
View File

0
public/static/lazyload/lazyload.js Executable file → Normal file
View File

0
public/static/login.css Executable file → Normal file
View File

0
public/static/marquee/marquee.css Executable file → Normal file
View File

0
public/static/marquee/marquee.min.js vendored Executable file → Normal file
View File

0
public/static/md5/md5.min.js vendored Executable file → Normal file
View File

0
public/static/md5/md5.min.js.map Executable file → Normal file
View File

0
public/static/nprogress/nprogress.min.css vendored Executable file → Normal file
View File

0
public/static/nprogress/nprogress.min.js vendored Executable file → Normal file
View File

0
public/static/qrcode/qrcode.min.js vendored Executable file → Normal file
View File

0
public/static/tinyfilemanager/ace.js Executable file → Normal file
View File

0
public/static/tinyfilemanager/bootstrap.min.css vendored Executable file → Normal file
View File

0
public/static/tinyfilemanager/bootstrap.min.css.map Executable file → Normal file
View File

0
public/static/tinyfilemanager/bootstrap.min.js vendored Executable file → Normal file
View File

0
public/static/tinyfilemanager/bootstrap.min.js.map Executable file → Normal file
View File

0
public/static/tinyfilemanager/dropzone.min.css vendored Executable file → Normal file
View File

0
public/static/tinyfilemanager/dropzone.min.js vendored Executable file → Normal file
View File

0
public/static/tinyfilemanager/ekko-lightbox.css Executable file → Normal file
View File

0
public/static/tinyfilemanager/ekko-lightbox.min.js vendored Executable file → Normal file
View File

0
public/static/tinyfilemanager/ekko-lightbox.min.js.map Executable file → Normal file
View File

0
public/static/tinyfilemanager/font-awesome.min.css vendored Executable file → Normal file
View File

0
public/static/tinyfilemanager/highlight.min.js vendored Executable file → Normal file
View File

0
public/static/tinyfilemanager/ir-black.min.css vendored Executable file → Normal file
View File

Some files were not shown because too many files have changed in this diff Show More