v2.4.1
parent
a38fca1eb2
commit
6aac1f6838
10
README.md
10
README.md
|
@ -66,7 +66,15 @@ RewriteRule config/(.*).(php)$ – [F]
|
|||
|
||||
<details><summary><mark><font color=darkred>点击查看2.0版更新日志</font></mark></summary>
|
||||
|
||||
* 2021-11-5 v2.4.0
|
||||
* 2021-11-12 v2.4.1
|
||||
- 增加缓存周期配置
|
||||
- 增加上传统计
|
||||
- 增加viewjs
|
||||
- 更新依赖件
|
||||
- 修复统计错误
|
||||
|
||||
|
||||
* 2021-11-9 v2.4.0
|
||||
- 增加统计缓存
|
||||
- 增加最近30天上传统计与占用空间图表
|
||||
- 增加初始化安装(可能会不支持二级目录安装,可删除install文件夹初始化)
|
||||
|
|
|
@ -36,7 +36,7 @@ if (isset($_POST['form'])) {
|
|||
<ul class="nav nav-tabs nav-stacked">
|
||||
<li class="active"><a href="###" data-target="#tab3Content1" data-toggle="tab">网站设置</a></li>
|
||||
<li><a href="###" data-target="#tab3Content2" data-toggle="tab">上传设置</a></li>
|
||||
<li><a href="###" data-target="#tab3Content3" data-toggle="tab">广告设置</a></li>
|
||||
<li><a href="###" data-target="#tab3Content3" data-toggle="tab">拓展设置</a></li>
|
||||
<li><a href="###" data-target="#tab3Content4" data-toggle="tab">API 设置</a></li>
|
||||
<li><a href="###" data-target="#tab3Content5" data-toggle="tab">安全设置</a></li>
|
||||
</ul>
|
||||
|
@ -78,12 +78,14 @@ if (isset($_POST['form'])) {
|
|||
<label>网站公告</label>
|
||||
<textarea class="form-control" rows="3" name="tips" required="required" onkeyup="this.value=this.value.replace(/\s/g,'')"><?php echo $config['tips']; ?></textarea>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>页脚信息</label>
|
||||
<textarea class="form-control" rows="3" name="footer" required="required"><?php echo $config['footer']; ?></textarea>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="switch">
|
||||
<input type="hidden" name="static_cdn" value="0">
|
||||
<input type="checkbox" name="static_cdn" value="1" <?php if ($config['static_cdn']) {
|
||||
echo 'checked="checked"';
|
||||
} ?>>
|
||||
<input type="checkbox" name="static_cdn" value="1" <?php if ($config['static_cdn']) {echo 'checked="checked"';} ?>>
|
||||
<label style="font-weight: bold">开启静态文件CDN</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -102,18 +104,14 @@ if (isset($_POST['form'])) {
|
|||
<div class="form-group">
|
||||
<div class="switch">
|
||||
<input type="hidden" name="mustLogin" value="0">
|
||||
<input type="checkbox" name="mustLogin" value="1" <?php if ($config['mustLogin']) {
|
||||
echo 'checked="checked"';
|
||||
} ?>>
|
||||
<input type="checkbox" name="mustLogin" value="1" <?php if ($config['mustLogin']) {echo 'checked="checked"';} ?>>
|
||||
<label style="font-weight: bold">开启登录上传</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="switch">
|
||||
<input type="hidden" name="apiStatus" value="0">
|
||||
<input type="checkbox" name="apiStatus" value="1" <?php if ($config['apiStatus']) {
|
||||
echo 'checked="checked"';
|
||||
} ?>>
|
||||
<input type="checkbox" name="apiStatus" value="1" <?php if ($config['apiStatus']) {echo 'checked="checked"';} ?>>
|
||||
<label style="font-weight: bold">开启API上传</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -124,27 +122,13 @@ if (isset($_POST['form'])) {
|
|||
<div class="form-group">
|
||||
<label>文件的命名方式</label>
|
||||
<select class="chosen-select form-control" name="imgName">
|
||||
<option value="default" <?php if ($config['imgName'] == 'default') {
|
||||
echo 'selected';
|
||||
} ?>>将上传时间+随机数转换为36进制 例:vx77yu</option>
|
||||
<option value="date" <?php if ($config['imgName'] == 'date') {
|
||||
echo 'selected';
|
||||
} ?>>以上传时间 例:192704</option>
|
||||
<option value="unix" <?php if ($config['imgName'] == 'unix') {
|
||||
echo 'selected';
|
||||
} ?>>以Unix时间 例:1635074840</option>
|
||||
<option value="uniqid" <?php if ($config['imgName'] == 'uniqid') {
|
||||
echo 'selected';
|
||||
} ?>>基于以微秒计的当前时间 例:6175436c73418</option>
|
||||
<option value="guid" <?php if ($config['imgName'] == 'guid') {
|
||||
echo 'selected';
|
||||
} ?>>全球唯一标识符 例:6EDAD0CC-AB0C-4F61-BCCA-05FAD65BF0FA</option>
|
||||
<option value="md5" <?php if ($config['imgName'] == 'md5') {
|
||||
echo 'selected';
|
||||
} ?>>md5加密时间 例:3888aa69eb321a2b61fcc63520bf6c82</option>
|
||||
<option value="sha1" <?php if ($config['imgName'] == 'sha1') {
|
||||
echo 'selected';
|
||||
} ?>>sha1加密微秒 例:654faac01499e0cb5fb0e9d78b21e234c63d842a</option>
|
||||
<option value="default" <?php if ($config['imgName'] == 'default') {echo 'selected';} ?>>将上传时间+随机数转换为36进制 例:vx77yu</option>
|
||||
<option value="date" <?php if ($config['imgName'] == 'date') {echo 'selected';} ?>>以上传时间 例:192704</option>
|
||||
<option value="unix" <?php if ($config['imgName'] == 'unix') {echo 'selected';} ?>>以Unix时间 例:1635074840</option>
|
||||
<option value="uniqid" <?php if ($config['imgName'] == 'uniqid') {echo 'selected';} ?>>基于以微秒计的当前时间 例:6175436c73418</option>
|
||||
<option value="guid" <?php if ($config['imgName'] == 'guid') {echo 'selected';} ?>>全球唯一标识符 例:6EDAD0CC-AB0C-4F61-BCCA-05FAD65BF0FA</option>
|
||||
<option value="md5" <?php if ($config['imgName'] == 'md5') {echo 'selected';} ?>>md5加密时间 例:3888aa69eb321a2b61fcc63520bf6c82</option>
|
||||
<option value="sha1" <?php if ($config['imgName'] == 'sha1') {echo 'selected';} ?>>sha1加密微秒 例:654faac01499e0cb5fb0e9d78b21e234c63d842a</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -158,15 +142,9 @@ if (isset($_POST['form'])) {
|
|||
<div class="form-group">
|
||||
<label>上传水印</label>
|
||||
<select class="chosen-select form-control" name="watermark">
|
||||
<option value="0" <?php if (!$config['watermark']) {
|
||||
echo 'selected';
|
||||
} ?>>关闭水印</option>
|
||||
<option value="1" <?php if ($config['watermark'] == 1) {
|
||||
echo 'selected';
|
||||
} ?>>文字水印</option>
|
||||
<option value="2" <?php if ($config['watermark'] == 2) {
|
||||
echo 'selected';
|
||||
} ?>>图片水印</option>
|
||||
<option value="0" <?php if (!$config['watermark']) {echo 'selected';} ?>>关闭水印</option>
|
||||
<option value="1" <?php if ($config['watermark'] == 1) {echo 'selected';} ?>>文字水印</option>
|
||||
<option value="2" <?php if ($config['watermark'] == 2) {echo 'selected';} ?>>图片水印</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -176,36 +154,15 @@ if (isset($_POST['form'])) {
|
|||
<div class="form-group">
|
||||
<label>水印位置:</label>
|
||||
<select class="chosen-select form-control" name="waterPosition">
|
||||
<option value="0" <?php if (!$config['waterPosition']) {
|
||||
echo 'selected';
|
||||
} ?>>随机位置</option>
|
||||
<option value="1" <?php if ($config['waterPosition'] == 1) {
|
||||
echo 'selected';
|
||||
} ?>>顶部居左</option>
|
||||
<option value="2" <?php if ($config['waterPosition'] == 2) {
|
||||
echo 'selected';
|
||||
} ?>>顶部居中</option>
|
||||
<option value="3" <?php if ($config['waterPosition'] == 3) {
|
||||
echo 'selected';
|
||||
} ?>>顶部居右</option>
|
||||
<option value="4" <?php if ($config['waterPosition'] == 4) {
|
||||
echo 'selected';
|
||||
} ?>>左边居中</option>
|
||||
<option value="5" <?php if ($config['waterPosition'] == 5) {
|
||||
echo 'selected';
|
||||
} ?>>图片中心</option>
|
||||
<option value="6" <?php if ($config['waterPosition'] == 6) {
|
||||
echo 'selected';
|
||||
} ?>>右边居中</option>
|
||||
<option value="7" <?php if ($config['waterPosition'] == 7) {
|
||||
echo 'selected';
|
||||
} ?>>底部居左</option>
|
||||
<option value="8" <?php if ($config['waterPosition'] == 8) {
|
||||
echo 'selected';
|
||||
} ?>>底部居中</option>
|
||||
<option value="9" <?php if ($config['waterPosition'] == 9) {
|
||||
echo 'selected';
|
||||
} ?>>底部居右</option>
|
||||
<option value="0" <?php if (!$config['waterPosition']) {echo 'selected';} ?>>随机位置</option><option value="1" <?php if ($config['waterPosition'] == 1) {echo 'selected';} ?>>顶部居左</option>
|
||||
<option value="2" <?php if ($config['waterPosition'] == 2) {echo 'selected';} ?>>顶部居中</option>
|
||||
<option value="3" <?php if ($config['waterPosition'] == 3) {echo 'selected';} ?>>顶部居右</option>
|
||||
<option value="4" <?php if ($config['waterPosition'] == 4) {echo 'selected';} ?>>左边居中</option>
|
||||
<option value="5" <?php if ($config['waterPosition'] == 5) {echo 'selected';} ?>>图片中心</option>
|
||||
<option value="6" <?php if ($config['waterPosition'] == 6) {echo 'selected';} ?>>右边居中</option>
|
||||
<option value="7" <?php if ($config['waterPosition'] == 7) {echo 'selected';} ?>>底部居左</option>
|
||||
<option value="8" <?php if ($config['waterPosition'] == 8) {echo 'selected';} ?>>底部居中</option>
|
||||
<option value="9" <?php if ($config['waterPosition'] == 9) {echo 'selected';} ?>>底部居右</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -231,9 +188,7 @@ if (isset($_POST['form'])) {
|
|||
<div class="form-group">
|
||||
<div class="switch">
|
||||
<input type="hidden" name="compress" value="0">
|
||||
<input type="checkbox" name="compress" value="1" <?php if ($config['compress']) {
|
||||
echo 'checked="checked"';
|
||||
} ?> title=" 轻微有损压缩图片, 此压缩有可能使图片变大!特别是小图片 也有一定概率改变图片方向">
|
||||
<input type="checkbox" name="compress" value="1" <?php if ($config['compress']) {echo 'checked="checked"';} ?> title=" 轻微有损压缩图片, 此压缩有可能使图片变大!特别是小图片 也有一定概率改变图片方向">
|
||||
<label style="font-weight: bold">开启压缩图片-开启后会增加服务器负担</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -270,9 +225,7 @@ if (isset($_POST['form'])) {
|
|||
<div class="form-group">
|
||||
<div class="switch">
|
||||
<input type="hidden" name="imgRatio" value="0">
|
||||
<input type="checkbox" name="imgRatio" value="1" <?php if ($config['imgRatio']) {
|
||||
echo 'checked="checked"';
|
||||
} ?>>
|
||||
<input type="checkbox" name="imgRatio" value="1" <?php if ($config['imgRatio']) {echo 'checked="checked"';} ?>>
|
||||
<label style="font-weight: bold">开启上传后改变图片尺寸(不开启下边不会生效!)</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -295,9 +248,7 @@ if (isset($_POST['form'])) {
|
|||
<div class="form-group">
|
||||
<div class="switch">
|
||||
<input type="hidden" name="ad_top" value="0">
|
||||
<input type="checkbox" name="ad_top" value="1" <?php if ($config['ad_top']) {
|
||||
echo 'checked="checked"';
|
||||
} ?>>
|
||||
<input type="checkbox" name="ad_top" value="1" <?php if ($config['ad_top']) {echo 'checked="checked"';} ?>>
|
||||
<label style="font-weight: bold">开启顶部广告</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -308,9 +259,7 @@ if (isset($_POST['form'])) {
|
|||
<div class="form-group">
|
||||
<div class="switch">
|
||||
<input type="hidden" name="ad_bot" value="0">
|
||||
<input type="checkbox" name="ad_bot" value="1" <?php if ($config['ad_bot']) {
|
||||
echo 'checked="checked"';
|
||||
} ?>>
|
||||
<input type="checkbox" name="ad_bot" value="1" <?php if ($config['ad_bot']) {echo 'checked="checked"';} ?>>
|
||||
<label style="font-weight: bold">开启底部广告</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -345,9 +294,7 @@ if (isset($_POST['form'])) {
|
|||
<div class="form-group">
|
||||
<div class="switch">
|
||||
<input type="hidden" name="showSwitch" value="0">
|
||||
<input type="checkbox" name="showSwitch" value="1" <?php if ($config['showSwitch']) {
|
||||
echo 'checked="checked"';
|
||||
} ?>>
|
||||
<input type="checkbox" name="showSwitch" value="1" <?php if ($config['showSwitch']) {echo 'checked="checked"';} ?>>
|
||||
<label style="font-weight: bold">开启游客预览(广场)</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -359,18 +306,14 @@ if (isset($_POST['form'])) {
|
|||
<div class="form-group">
|
||||
<div class="switch">
|
||||
<input type="hidden" name="checkEnv" value="0">
|
||||
<input type="checkbox" name="checkEnv" value="1" <?php if ($config['checkEnv']) {
|
||||
echo 'checked="checked"';
|
||||
} ?>>
|
||||
<input type="checkbox" name="checkEnv" value="1" <?php if ($config['checkEnv']) {echo 'checked="checked"';} ?>>
|
||||
<label style="font-weight: bold">开启PHP插件检测-安全设置检测-版本检测</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="switch">
|
||||
<input type="hidden" name="checkImg" value="0">
|
||||
<input type="checkbox" name="checkImg" value="1" <?php if ($config['checkImg']) {
|
||||
echo 'checked="checked"';
|
||||
} ?> title="开启后会受服务器到https://moderatecontent.com速度影响,国内不建议开启!">
|
||||
<input type="checkbox" name="checkImg" value="1" <?php if ($config['checkImg']) {echo 'checked="checked"';} ?> title="开启后会受服务器到https://moderatecontent.com速度影响,国内不建议开启!">
|
||||
<label style="font-weight: bold">开启图片监黄</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -383,6 +326,11 @@ if (isset($_POST['form'])) {
|
|||
<label id="checkImg_value"><?php echo $config['checkImg_value']; ?></label><label>%</label>
|
||||
<input type="range" class="form-control" name="checkImg_value" value="<?php echo $config['checkImg_value']; ?>" min="1" max="100" step="1" onchange="document.getElementById('checkImg_value').innerHTML=value">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>缓存有效期,当前:</label>
|
||||
<label id="cache_freq"><?php echo $config['cache_freq']; ?></label><label>小时</label>
|
||||
<input type="range" class="form-control" name="cache_freq" value="<?php echo $config['cache_freq']; ?>" min="1" step="1"max="24" onchange="document.getElementById('cache_freq').innerHTML=value">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<p style="font-weight: bold">当前软件版本:<span class="label label-badge label-outline"><?php echo $config['version']; ?></span></p>
|
||||
</div>
|
||||
|
@ -398,7 +346,7 @@ if (isset($_POST['form'])) {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="/public/static/jscolor.js"></script>
|
||||
<script type="text/javascript" src="<?php static_cdn(); ?>/public/static/jscolor.js"></script>
|
||||
<script>
|
||||
var eye = document.getElementById("eye");
|
||||
var pwd = document.getElementById("pwd");
|
||||
|
|
|
@ -0,0 +1,131 @@
|
|||
<?php
|
||||
/*
|
||||
* 统计中心
|
||||
*/
|
||||
require_once '../application/header.php';
|
||||
require_once APP_ROOT . '/config/api_key.php';
|
||||
require_once APP_ROOT . '/api/application/apiFunction.php';
|
||||
require_once APP_ROOT . '/application/chart.php';
|
||||
|
||||
// 检测登录
|
||||
if (!is_online()) {
|
||||
checkLogin();
|
||||
}
|
||||
// 统计图表
|
||||
// array_reverse($arr,true) 倒叙数组并保持键值关系
|
||||
$char_data = read_chart_total();
|
||||
if (is_array($char_data)) {
|
||||
$chart_date = '';
|
||||
foreach (array_reverse($char_data['date'], true) as $value) {
|
||||
$chart_date .= $value;
|
||||
}
|
||||
$chart_date = str_replace(date('Y/'), '', $chart_date); // 删除年份
|
||||
|
||||
$chart_number = '';
|
||||
foreach (array_reverse($char_data['number'], true) as $value) {
|
||||
$chart_number .= $value;
|
||||
}
|
||||
|
||||
$chart_disk = '';
|
||||
foreach (array_reverse($char_data['disk'], true) as $value) {
|
||||
$chart_disk .= $value;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<div class="clo-md-12">
|
||||
<div class="alert alert-warning">统计时间:<?php echo $char_data['total_time']; ?></div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="col-md-6">
|
||||
<h4>文件统计(张)</h4>
|
||||
<canvas id="myBarChart" width="960" height="400"></canvas>
|
||||
<p>文件统计(张)</p>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h4 class=" col-md-offset-2">硬盘统计:(GB)</h4>
|
||||
<canvas id="diskPieChart" width="960" height="400"></canvas>
|
||||
<h4 class=" col-md-offset-2"><?php printf("总空间:%1\$.2f GB 已用:%2\$.2f GB 剩余:%3\$.2f GB", disk_total_space('.') / 1024 / 1024 / 1024, (disk_total_space('.') - disk_free_space('.')) / 1024 / 1024 / 1024, disk_free_space('.') / 1024 / 1024 / 1024); ?></h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12" style="text-align: center;">
|
||||
<hr/>
|
||||
<h4>最近30上传趋势与空间占用(上传/张 占用/MB)</h4>
|
||||
<canvas id="myChart" width="1080" height="200"></canvas>
|
||||
</div>
|
||||
|
||||
<script src="<?php static_cdn(); ?>/public/static/zui/lib/chart/zui.chart.min.js"></script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="<?php static_cdn(); ?>/public/static/zui/lib/chart/excanvas.js"></script>
|
||||
<![endif]-->
|
||||
<script>
|
||||
// 文件统计-柱状图
|
||||
var data = {
|
||||
labels: ["今日上传", "昨日上传", "累计上传", "缓存文件", "可疑图片", "已创建文件夹"],
|
||||
datasets: [{
|
||||
label: "文件统计",
|
||||
color: 'green',
|
||||
data: [<?php echo str_replace('"', '', $char_data['number'][0] . $char_data['number'][1] . read_total_json('filenum') . ',' . getFileNumber(APP_ROOT . $config['path'] . 'cache/') . ',' . getFileNumber(APP_ROOT . $config['path'] . 'suspic/') . ',' . read_total_json('dirnum')); ?>]
|
||||
}]
|
||||
};
|
||||
|
||||
var options = {
|
||||
responsive: true
|
||||
}; // 图表配置项,可以留空来使用默认的配置
|
||||
var myBarChart = $('#myBarChart').barChart(data, options);
|
||||
|
||||
|
||||
// 最近30上传趋势与空间占用-折线图
|
||||
// 使用jquery方法获取 2d context 对象
|
||||
var ctx = $("#myChart").get(0).getContext("2d");
|
||||
|
||||
// 使用$.zui.Chart构造Chart实例
|
||||
var myNewChart = new $.zui.Chart(ctx);
|
||||
|
||||
var data = {
|
||||
// labels 数据包含依次在X轴上显示的文本标签
|
||||
labels: [<?php echo rtrim($chart_date, ','); ?>],
|
||||
datasets: [{
|
||||
// 数据集名称,会在图例中显示
|
||||
label: "上传",
|
||||
color: "green",
|
||||
// 数据集
|
||||
data: [<?php echo rtrim($chart_number, ','); ?>]
|
||||
}, {
|
||||
label: "占用",
|
||||
color: "red",
|
||||
data: [<?php echo rtrim($chart_disk, ','); ?>]
|
||||
}]
|
||||
};
|
||||
|
||||
var options = {}; // 图表配置项,可以留空来使用默认的配置
|
||||
|
||||
var myLineChart = $("#myChart").lineChart(data, options);
|
||||
|
||||
|
||||
// 硬盘统计-饼状图
|
||||
var data = [{
|
||||
value: <?php echo round(disk_free_space('.') / 1024 / 1024 / 1024, 2); ?>,
|
||||
color: "green", // 使用颜色名称
|
||||
label: "剩余空间"
|
||||
}, {
|
||||
value: <?php echo round((disk_total_space('.') - disk_free_space('.')) / 1024 / 1024 / 1024, 2); ?>,
|
||||
|
||||
color: "red", // 自定义颜色
|
||||
// highlight: "#FF5A5E", // 自定义高亮颜色
|
||||
label: "已用空间"
|
||||
}];
|
||||
|
||||
// 图表配置项,可以留空来使用默认的配置
|
||||
var options = {
|
||||
scaleShowLabels: true, // 展示标签
|
||||
};
|
||||
|
||||
// 创建饼图
|
||||
var myPieChart = $("#diskPieChart").pieChart(data, options);
|
||||
|
||||
// Title
|
||||
document.title = "图床统计信息 - <?php echo $config['title']; ?>";
|
||||
</script>
|
||||
|
||||
<?php require_once APP_ROOT . '/application/footer.php';
|
|
@ -5,7 +5,6 @@
|
|||
require_once '../application/header.php';
|
||||
require_once APP_ROOT . '/config/api_key.php';
|
||||
require_once APP_ROOT . '/api/application/apiFunction.php';
|
||||
require_once APP_ROOT . '/application/chart.php';
|
||||
|
||||
// 检测登录
|
||||
if (!is_online()) {
|
||||
|
@ -44,27 +43,6 @@ if (isset($_GET['reimg'])) {
|
|||
re_checkImg($name);
|
||||
}
|
||||
|
||||
// 统计图表
|
||||
// array_reverse($arr,true) 倒叙数组并保持键值关系
|
||||
$char_data = read_chart_total();
|
||||
if (is_array($char_data)) {
|
||||
$chart_date = '';
|
||||
foreach (array_reverse($char_data['date'], true) as $value) {
|
||||
$chart_date .= $value;
|
||||
}
|
||||
$chart_date = str_replace(date('Y/'), '', $chart_date); // 删除年份
|
||||
|
||||
$chart_number = '';
|
||||
foreach (array_reverse($char_data['number'], true) as $value) {
|
||||
$chart_number .= $value;
|
||||
}
|
||||
|
||||
$chart_disk = '';
|
||||
foreach (array_reverse($char_data['disk'], true) as $value) {
|
||||
$chart_disk .= $value;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
|
@ -116,12 +94,6 @@ if (is_array($char_data)) {
|
|||
?>
|
||||
</p>
|
||||
<p>当前版本:<?php echo $config['version']; ?>,Github版本:<a href="https://github.com/icret/EasyImages2.0/releases" target="_blank"><?php echo getVersion(); ?></a></p>
|
||||
<p><?php
|
||||
$yesterday = date("Y/m/d/", strtotime("-1 day"));
|
||||
echo '今日上传:' . getFileNumber(APP_ROOT . config_path()) . ' 昨日上传:' . getFileNumber(APP_ROOT . $config['path'] . $yesterday);
|
||||
echo '<br />统计时间: ' . read_total_json('total_time') . ';文件夹:' . read_total_json('dirnum') . '个;托管图片:' . read_total_json('filenum') . '张;占用:' . read_total_json('usage_space') . ';缓存周期:每小时。';
|
||||
?>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -224,13 +196,6 @@ if (is_array($char_data)) {
|
|||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12" style="text-align: center;">
|
||||
<hr>
|
||||
<h4>上传统计(每日更新)</h4>
|
||||
<canvas id="myChart" width="1920" height="400"></canvas>
|
||||
<p>单位:上传/个 占用/Mb 统计时间:<?php echo $char_data['total_time']; ?></p>
|
||||
<p></p>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<hr>
|
||||
<div class="col-md-7">
|
||||
|
@ -296,9 +261,9 @@ if (is_array($char_data)) {
|
|||
</div>
|
||||
<div class="col-md-5">
|
||||
<form class="form-inline" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
|
||||
<span class="label label-badge label-primary label-outline">已缓存<?php echo getFileNumber(APP_ROOT . $config['path'] . 'cache/'); ?>个文件
|
||||
缓存占用<?php echo getDistUsed(getDirectorySize(APP_ROOT . $config['path'] . 'cache/')); ?>
|
||||
<button type="submit" class="btn btn-mini btn-primary" name="delDir" value="cache/" onClick="return confirm('确认要删除?\n* 删除文件夹后将无法恢复!');">删除缓存</button></span>
|
||||
<span class="label label-badge label-primary label-outline">已缓存文件:<?php echo getFileNumber(APP_ROOT . $config['path'] . 'cache/'); ?>
|
||||
占用<?php echo getDistUsed(getDirectorySize(APP_ROOT . $config['path'] . 'cache/')); ?>
|
||||
<button type="submit" class="btn btn-mini btn-primary" name="delDir" value="cache/" onClick="return confirm('确认要清理缓存?\n* 删除文件夹后将无法恢复!');">清理</button></span>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -306,10 +271,6 @@ if (is_array($char_data)) {
|
|||
</div>
|
||||
<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/zui/lib/chart/zui.chart.min.js"></script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="<?php static_cdn(); ?>/public/static/zui/lib/chart/excanvas.js"></script>
|
||||
<![endif]-->
|
||||
<script>
|
||||
// 动态显示要删除的图片
|
||||
var oBtn = document.getElementById('del');
|
||||
|
@ -335,36 +296,6 @@ if (is_array($char_data)) {
|
|||
forceParse: 0,
|
||||
format: "yyyy/mm/dd/"
|
||||
});
|
||||
|
||||
// 图表格式化
|
||||
// 使用jquery方法获取 2d context 对象
|
||||
var ctx = $("#myChart").get(0).getContext("2d");
|
||||
|
||||
// 使用$.zui.Chart构造Chart实例
|
||||
var myNewChart = new $.zui.Chart(ctx);
|
||||
|
||||
var data = {
|
||||
// labels 数据包含依次在X轴上显示的文本标签
|
||||
labels: [<?php echo rtrim($chart_date, ','); ?>],
|
||||
// labels: ["11月7日", "11月6日", "11月5日", "11月4日", "11月3日", "11月2日", "11月1日", "10月31日", "10月30日", "10月29日", "10月28日", "10月27日"],
|
||||
datasets: [{
|
||||
// 数据集名称,会在图例中显示
|
||||
label: "上传",
|
||||
color: "green",
|
||||
// 数据集
|
||||
data: [<?php echo rtrim($chart_number, ','); ?>]
|
||||
}, {
|
||||
label: "占用",
|
||||
color: "red",
|
||||
data: [<?php echo rtrim($chart_disk, ','); ?>]
|
||||
}]
|
||||
};
|
||||
|
||||
var options = {}; // 图表配置项,可以留空来使用默认的配置
|
||||
|
||||
var myLineChart = $("#myChart").lineChart(data, options);
|
||||
|
||||
|
||||
// Title
|
||||
document.title = "管理中心 - <?php echo $config['title']; ?>";
|
||||
</script>
|
|
@ -2,7 +2,7 @@
|
|||
require_once __DIR__ . '/function.php';
|
||||
|
||||
/**
|
||||
* 统计
|
||||
* 统计最近一个月上传文件数与空间占用
|
||||
*/
|
||||
|
||||
// 获取最近一周,一个月,一年 https://www.cnblogs.com/-mrl/p/7680700.html
|
||||
|
@ -29,17 +29,22 @@ function getLatelyTime($type = '')
|
|||
return $result;
|
||||
}
|
||||
|
||||
$total_contents = APP_ROOT . $config['path']; // 获取用户自定义的上传目录
|
||||
$chart_total_fileName = 'total_chart_' . md5_file(APP_ROOT . '/config/config.php'); // 以config.php文件的md5命名
|
||||
$chart_total_file = $total_contents . 'cache/' . $chart_total_fileName . '.php'; // 文件绝对目录
|
||||
$total_contents = APP_ROOT . $config['path']; // 获取用户自定义的上传目录
|
||||
$chart_total_file_md5 = strval(md5_file(APP_ROOT . '/config/config.php')); // 以config.php文件的md5命名
|
||||
$chart_total_file = $total_contents . "cache/chart-$chart_total_file_md5.php"; // 文件绝对目录
|
||||
|
||||
function write_chart_total()
|
||||
{
|
||||
global $total_contents;
|
||||
global $chart_total_file;
|
||||
global $chart_total_file_md5;
|
||||
|
||||
$count_day = getLatelyTime('month');
|
||||
|
||||
$count_contents['filename'] = $chart_total_file_md5; // 文件名称
|
||||
$count_contents['total_time'] = date('Y-m-d H:i:s'); // 统计时间
|
||||
$count_contents['date'] = date('YmdH'); // 校对时间
|
||||
|
||||
for ($i = 0; $i < count($count_day); $i++) {
|
||||
// 统计每日上传数量
|
||||
$count_contents['chart_data'][] = [$count_day[$i] => getFileNumber($total_contents . $count_day[$i])];
|
||||
|
@ -49,10 +54,7 @@ function write_chart_total()
|
|||
// 统计每日占用空间
|
||||
$count_contents['chart_disk'][] = [$count_day[$i] => getDirectorySize($total_contents . $count_day[$i])];
|
||||
}
|
||||
|
||||
$count_contents['total_time'] = date('Y-m-d H:i:s'); // 统计时间
|
||||
$count_contents['date'] = date('Ymd'); // 校对时间
|
||||
|
||||
|
||||
$count_contents = json_encode($count_contents, true); // serialize存储文件
|
||||
file_put_contents($chart_total_file, $count_contents); // 存储文件
|
||||
}
|
||||
|
@ -60,60 +62,35 @@ function write_chart_total()
|
|||
function read_chart_total()
|
||||
{
|
||||
global $chart_total_file;
|
||||
global $config;
|
||||
|
||||
if (is_file($chart_total_file)) {
|
||||
$cache_freq = $config['cache_freq'];
|
||||
|
||||
$chart_total_file = file_get_contents($chart_total_file);
|
||||
$chart_total_file = json_decode($chart_total_file, true);
|
||||
|
||||
|
||||
if ($chart_total_file['date'] !== date('Ymd')) {
|
||||
write_chart_total();
|
||||
} else {
|
||||
for ($i = 0; $i < count($chart_total_file['chart_data']); $i++) {
|
||||
// 读取每日上传数量
|
||||
foreach ($chart_total_file['chart_data'][$i] as $key => $value) {
|
||||
$chart_data_date[] = '"' . $key . '" ,';
|
||||
$chart_data_num[] = '"' . $value . '" ,';
|
||||
//echo $key . '<br/>';
|
||||
//echo $value . '<br/>';
|
||||
}
|
||||
foreach ($chart_total_file['chart_disk'][$i] as $value) {
|
||||
$value = round($value / 1024 / 1024, 2);
|
||||
|
||||
$chart_total_disk[] = '"' . $value . '" ,';
|
||||
}
|
||||
}
|
||||
|
||||
return array('date' => $chart_data_date, 'number' => $chart_data_num, 'disk' => $chart_total_disk, 'total_time' => $chart_total_file['total_time']);
|
||||
}
|
||||
if (file_exists($chart_total_file)) {
|
||||
$read_chart_file = file_get_contents($chart_total_file);
|
||||
$read_chart_file = json_decode($read_chart_file, true);
|
||||
} else {
|
||||
write_chart_total();
|
||||
$read_chart_file = file_get_contents($chart_total_file);
|
||||
$read_chart_file = json_decode($read_chart_file, true);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
switch ($name) {
|
||||
case 'date':
|
||||
return $chart_data_date;
|
||||
break;
|
||||
case 'number':
|
||||
return $chart_data_num;
|
||||
case 'disk':
|
||||
return $chart_total_disk;
|
||||
break;
|
||||
default:
|
||||
return $chart_data_date;
|
||||
if ((date('YmdH') - $read_chart_file['date']) > $cache_freq) {
|
||||
write_chart_total();
|
||||
$read_chart_file = file_get_contents($chart_total_file);
|
||||
$read_chart_file = json_decode($read_chart_file, true);
|
||||
}
|
||||
*/
|
||||
|
||||
for ($i = 0; $i < count($read_chart_file['chart_data']); $i++) {
|
||||
// 读取每日上传数量
|
||||
foreach ($read_chart_file['chart_data'][$i] as $key => $value) {
|
||||
$chart_data_date[] = '"' . $key . '" ,';
|
||||
$chart_data_num[] = '"' . $value . '" ,';
|
||||
}
|
||||
foreach ($read_chart_file['chart_disk'][$i] as $value) {
|
||||
$value = round($value / 1024 / 1024, 2);
|
||||
$chart_total_disk[] = '"' . $value . '" ,';
|
||||
}
|
||||
}
|
||||
return array('filename' => $read_chart_file['filename'], 'date' => $chart_data_date, 'number' => $chart_data_num, 'disk' => $chart_total_disk, 'total_time' => $read_chart_file['total_time']);
|
||||
}
|
||||
/*
|
||||
|
||||
$char_data = read_chart_total();
|
||||
$chart_date = $char_data['date'];
|
||||
$chart_number = $char_data['number'];
|
||||
$chart_disk = $char_data['disk'];
|
||||
var_dump($char_data['disk']);
|
||||
var_dump($char_data['number']);
|
||||
|
||||
*/
|
|
@ -51,28 +51,28 @@
|
|||
NProgress.start();
|
||||
NProgress.done();
|
||||
</script>
|
||||
<footer class="text-muted small col-md-12" style="text-align: center;margin-bottom: 10px"><?php if($config['ad_bot']){echo $config['ad_bot_info'];} ?>
|
||||
<p><?php echo html_entity_decode($config['customize']); ?></p>
|
||||
<footer class="text-muted small col-md-12" style="text-align: center;margin-bottom: 10px"><?php if ($config['ad_bot']) {echo $config['ad_bot_info'];} ?>
|
||||
<?php echo $config['customize']; ?>
|
||||
<hr>
|
||||
<p><a href="/admin/terms.php" target="_blank">请勿上传违反中国政策的图片</a><i class="icon icon-smile"></i></p>
|
||||
<div>
|
||||
<!-- 对话框触发按钮 -->
|
||||
<a href="#" data-position="center" data-moveable="inside" data-moveable="true" data-toggle="modal" data-target="#myModal">
|
||||
<i class="icon icon-qrcode"></i>二维码 </a>
|
||||
<a href="<?php echo $config['domain']; ?>/api/apiTest/" target="_blank"><i class="icon icon-key"></i>API </a>
|
||||
<?php
|
||||
if (is_online()) {
|
||||
// <a href="' . $config['domain'] . '/admin/admin.inc.php" target="_blank"><i class="icon icon-rocket"></i>设置 </a>
|
||||
// <a href="' . $config['domain'] . '/admin/index.php" target="_blank"><i class="icon icon-rocket"></i>快捷操作 </a>
|
||||
echo '<a href="' . $config['domain'] . '/application/logout.php" ><i class="icon icon-signout"></i>退出 </a>';
|
||||
} else {
|
||||
echo '<a href="' . $config['domain'] . '/application/login.php" ><i class="icon icon-user"></i>登录 </a>';
|
||||
} ?>
|
||||
</div>
|
||||
<?php echo 'Copyright © 2018-' . date('Y'); ?>
|
||||
<a href="https://img.545141.com/" target="_blank">EasyImage</a> By
|
||||
<a href="https://www.545141.com/902.html" target="_blank">Icret</a> Version:<a href="https://github.com/icret/EasyImages2.0" target="_blank"><?php echo $config['version']; ?></a>
|
||||
<a href="/admin/terms.php" target="_blank">DMCA</a>
|
||||
|
||||
<!-- 对话框触发按钮 -->
|
||||
<a href="#" data-position="center" data-moveable="inside" data-moveable="true" data-toggle="modal" data-target="#myModal">
|
||||
<i class="icon icon-qrcode"></i>二维码 </a>
|
||||
<a href="<?php echo $config['domain']; ?>/api/apiTest/" target="_blank"><i class="icon icon-key"></i>API </a>
|
||||
<?php
|
||||
if (is_online()) {
|
||||
echo '<a href="' . $config['domain'] . '/application/logout.php" ><i class="icon icon-signout"></i>退出 </a>';
|
||||
} else {
|
||||
echo '<a href="' . $config['domain'] . '/application/login.php" ><i class="icon icon-user"></i>登录 </a>';
|
||||
}
|
||||
|
||||
if (isset($config['footer'])) {
|
||||
echo ' <div>' . $config['footer'] . ' </div>';
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
|
|
|
@ -315,9 +315,7 @@ function getActive($url)
|
|||
$arr = $_SERVER['PHP_SELF'];
|
||||
if (strpos($arr, $url)) {
|
||||
return 'active';
|
||||
} elseif (strpos($arr, $url)) {
|
||||
return 'active';
|
||||
} else {
|
||||
}else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
require_once __DIR__ . '/function.php';
|
||||
require_once APP_ROOT.'/application/total_files.php';
|
||||
?>
|
||||
require_once APP_ROOT . '/application/total_files.php';
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-cn">
|
||||
|
@ -62,19 +62,20 @@ require_once APP_ROOT.'/application/total_files.php';
|
|||
<?php
|
||||
if (is_online()) {
|
||||
echo '
|
||||
<li class="' . getActive('admin.inc') . '";>
|
||||
<a href="' . $config['domain'] . '/admin/admin.inc.php' . '">
|
||||
<i class="icon icon-rocket"> 图床设置</i>
|
||||
</a>
|
||||
<li>
|
||||
<a href="' . $config['domain'] . '/admin/index.php' . '">
|
||||
<i class="icon icon-rocket"> 快捷操作</i>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown dropdown-hover">
|
||||
<a class="dropdown-toggle" data-toggle="dropdown"><i class="icon icon-cogs"> 设置</i><span class="caret"></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li class="' . getActive('admin.inc') . '";><a href="' . $config['domain'] . '/admin/admin.inc.php' . '"><i class="icon icon-desktop"> 网站设置</i></a></li>
|
||||
<li class="divider"></li>
|
||||
<li class="' . getActive('tool') . '";><a href="' . $config['domain'] . '/admin/tool.php' . '"><i class="icon icon-rocket"> 快捷工具</i></a></li>
|
||||
<li class="divider"></li>
|
||||
<li class="' . getActive('info') . '";><a href="' . $config['domain'] . '/admin/info.php' . '"><i class="icon icon-pie-chart"> 上传统计</i></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
';
|
||||
}
|
||||
?>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<!-- 顶部导航栏END -->
|
|
@ -1,52 +1,37 @@
|
|||
<?php
|
||||
require_once __DIR__ . '/header.php';
|
||||
echo '<div class="col-md-12">';
|
||||
if (!$config['showSwitch'] and !is_online()) {
|
||||
echo '<div class="alert alert-info">管理员关闭了预览哦~~</div>';
|
||||
} else {
|
||||
$path = isset($_GET['date']) ? $_GET['date'] : date('Y/m/d/');
|
||||
$path = preg_replace("/^d{4}-d{2}-d{2} d{2}:d{2}:d{2}$/s", "", trim($path)); // 过滤非日期,删除空格
|
||||
|
||||
$keyNum = isset($_GET['num']) ? $_GET['num'] : $config['listNumber'];
|
||||
$keyNum = preg_replace("/[^0-9]/", "", trim($keyNum)); // 过滤非数字,删除空格
|
||||
|
||||
$fileArr = getFile(APP_ROOT . config_path($path)); // 统计当日上传数量
|
||||
|
||||
$path = isset($_GET['date']) ? $_GET['date'] : date('Y/m/d/'); // 获取指定目录
|
||||
$path = preg_replace("/^d{4}-d{2}-d{2} d{2}:d{2}:d{2}$/s", "", trim($path)); // 过滤非日期,删除空格
|
||||
$keyNum = isset($_GET['num']) ? $_GET['num'] : $config['listNumber']; // 获取指定浏览数量
|
||||
$keyNum = preg_replace("/[^0-9]/", "", trim($keyNum)); // 过滤非数字,删除空格
|
||||
$fileArr = getFile(APP_ROOT . config_path($path)); // 统计当日上传数量
|
||||
echo '
|
||||
<ul id="dowebok">
|
||||
<div class="cards listNum" >';
|
||||
if ($fileArr[0]) {
|
||||
echo '<div class="cards-condensed listNum">';
|
||||
foreach ($fileArr as $key => $value) {
|
||||
if ($key < $keyNum) {
|
||||
$imgUrl = $config['imgurl'] . config_path($path) . $value;
|
||||
// 会导致速度变慢
|
||||
// $re_img = str_replace($config['imgurl'], '', $imgUrl); // 图片相对路径 /i/2021/11/03/hg82t4.jpg
|
||||
// <p>' . @getimagesize($imgUrl)[0] . 'x' . @getimagesize($imgUrl)[1] . 'px ' . getDistUsed(filesize(APP_ROOT . $re_img)) . '</p>
|
||||
if (is_online()) {
|
||||
echo '
|
||||
<div class="col-md-4 col-sm-6 col-lg-3">
|
||||
echo '
|
||||
<div class="col-md-4 col-sm-6 col-lg-3">
|
||||
<div class="card">
|
||||
<img data-toggle="lightbox" data-image="' . back_cache_images($imgUrl) . '" src="../public/images/loading.svg" alt="简单图床-EasyImage">
|
||||
<div class="caption" style="color:#145ccd " >
|
||||
<a href="' . $imgUrl . '" target="_blank"><i class="icon icon-picture" title="打开原图"></i> </a>
|
||||
<a href="' . $config['domain'] . '/application/del.php?url=' . $imgUrl . '" target="_blank" title="删除文件"><i class="icon icon-trash"></i> </a>
|
||||
<a data-clipboard-demo="" data-clipboard-action="copy" data-clipboard-text="' . $imgUrl . '" title="复制文件"><i class="icon icon-copy"></i> </a>
|
||||
<label><input type="checkbox" style="zoom:120%;" id="url" name="checkbox" value="' . $imgUrl . '">选择</label>
|
||||
</div>
|
||||
<li><img data-image="' . back_cache_images($imgUrl) . '" src="../public/images/loading.svg" data-original="' . $imgUrl . '" alt="简单图床-EasyImage"></li>
|
||||
<div class="bottom">
|
||||
<a href="' . $imgUrl . '" target="_blank"><i class="icon icon-picture" title="打开原图" style="margin-left:10px;"></i></a>
|
||||
<a href="#" class="copy" data-clipboard-text="' . $imgUrl . '" title="复制文件" style="margin-left:10px;"><i class="icon icon-copy"></i></a>
|
||||
<a href="' . $config['domain'] . '/application/del.php?url=' . $imgUrl . '" target="_blank" title="删除文件" style="margin-left:10px;"><i class="icon icon-trash"></i></a>
|
||||
<label style="margin-left:10px;"><input type="checkbox" style="margin: left 200px;" id="url" name="checkbox" value="' . $imgUrl . '" > 选择</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
} else {
|
||||
echo '
|
||||
<div class="col-md-4 col-sm-6 col-lg-3">
|
||||
<div class="card">
|
||||
<img data-toggle="lightbox" data-image="' . back_cache_images($imgUrl) . '" src="../public/images/loading.svg" alt="简单图床-EasyImage">
|
||||
<div class="caption" style="color:#145ccd " >
|
||||
<a href="' . $imgUrl . '" target="_blank"><i class="icon icon-picture" title="打开原图"></i></a>
|
||||
<a href="' . $config['domain'] . '/application/del.php?url=' . $imgUrl . '" target="_blank" title="删除文件"><i class="icon icon-trash"></i></a>
|
||||
<a data-clipboard-demo="" data-clipboard-action="copy" data-clipboard-text="' . $imgUrl . '" title="复制文件"><i class="icon icon-copy"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
}
|
||||
}
|
||||
}
|
||||
echo '</div>';
|
||||
|
@ -54,23 +39,31 @@ if (!$config['showSwitch'] and !is_online()) {
|
|||
|
||||
echo '<div class="alert alert-danger">今天还没有上传的图片哟~~ <br />快来上传第一张吧~!</div>';
|
||||
}
|
||||
echo '</ul>';
|
||||
}
|
||||
/*
|
||||
$yesterday = date("Y/m/d/", strtotime("-1 day"));
|
||||
// 昨日日期
|
||||
$todayUpload = getFileNumber(APP_ROOT . config_path());
|
||||
// 今日上传数量
|
||||
$yesterdayUpload = getFileNumber(APP_ROOT . $config['path'] . $yesterday);
|
||||
// 昨日上传数量
|
||||
|
||||
$spaceUsed = getDistUsed(disk_total_space(__DIR__) - disk_free_space(__DIR__));
|
||||
// 占用空间
|
||||
*/
|
||||
// 当前日期全部上传
|
||||
$allUploud = isset($_GET['date']) ? $_GET['date'] : date('Y/m/d/');
|
||||
$allUploud = getFileNumber(APP_ROOT . $config['path'] . $allUploud);
|
||||
@$httpUrl = array('date' => $path, 'num' => getFileNumber(APP_ROOT . config_path($path)));
|
||||
?>
|
||||
</div>
|
||||
|
||||
<script src="<?php static_cdn(); ?>/public/static/lazyload.js"></script>
|
||||
<link rel="stylesheet" href="<?php static_cdn(); ?>/public/static/viewjs/viewer.min.css">
|
||||
<script src="<?php static_cdn(); ?>/public/static/viewjs/viewer.min.js"></script>
|
||||
<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>
|
||||
|
||||
<style>
|
||||
.card .bottom {
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0px;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
color: white;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
/** 返回顶部*/
|
||||
* {
|
||||
|
@ -119,16 +112,14 @@ $allUploud = getFileNumber(APP_ROOT . $config['path'] . $allUploud);
|
|||
z-index: 11;
|
||||
}
|
||||
</style>
|
||||
<script src="<?php static_cdn(); ?>/public/static/lazyload.js"></script>
|
||||
<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>
|
||||
|
||||
<div class="col-md-12">
|
||||
<hr />
|
||||
<div class="col-md-8">
|
||||
<a href="list.php?<?php echo http_build_query($httpUrl); ?>"><span class="label label-info label-outline"> 当前<?php echo $allUploud; ?>张</span></a>
|
||||
<a href="list.php"><span class="label label-success label-outline">今日<?php echo read_total_json('todayUpload'); ?>张</span></a><a href="list.php?date=<?php echo date("Y/m/d/", strtotime("-1 day")) ?>"><span class="label label-danger label-outline">昨日<?php echo read_total_json('yestUpload'); ?>张</span></a>
|
||||
<?php for ($x = 2; $x <= 5; $x++) {
|
||||
/** 倒推日期显示上传图片 */ echo '<a href="list.php?date=' . date('Y/m/d/', strtotime("-{$x} day")) . '"> <span class="label label-danger label-outline"> ' . date('m月d日', strtotime("-{$x} day")) . '</a>';
|
||||
/** 倒推日期显示上传图片 */ echo '<a href="list.php?date=' . date('Y/m/d/', strtotime("-{$x} day")) . '"> <span class="label label-danger label-outline"> ' . date('m月d日', strtotime("-{$x} day")) . '</span></a>';
|
||||
}
|
||||
if (is_online()) {
|
||||
echo '
|
||||
|
@ -146,8 +137,7 @@ $allUploud = getFileNumber(APP_ROOT . $config['path'] . $allUploud);
|
|||
<div class="col-md-4">
|
||||
<form class="form-inline" action="list.php" method="get">
|
||||
<div class="form-group">
|
||||
<!--<label for="exampleInputInviteCode3">按日期</label>-->
|
||||
<input type="text" class="form-control form-date" value="<?php echo date('Y/m/d/'); ?>" name="date" readonly="">
|
||||
<input type="text" class="form-control form-date" value="<?php echo date('Y/m/d/'); ?>" name="date" readonly="readonly">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">按日期</button>
|
||||
</form>
|
||||
|
@ -158,18 +148,27 @@ $allUploud = getFileNumber(APP_ROOT . $config['path'] . $allUploud);
|
|||
<div style="opacity:0;display: block;" class="level-2"></div>
|
||||
<div class="level-3"></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
//viewjs
|
||||
var viewer = new Viewer(document.getElementById('dowebok'), {
|
||||
url: 'data-original',
|
||||
backdrop: true
|
||||
});
|
||||
|
||||
// 复制url
|
||||
var clipboardDemos = new ClipboardJS('[data-clipboard-demo]');
|
||||
clipboardDemos.on('success', function(e) {
|
||||
var clipboard = new Clipboard('.copy');
|
||||
clipboard.on('success', function(e) {
|
||||
new $.zui.Messager("复制成功!", {
|
||||
type: "success" // 定义颜色主题
|
||||
}).show();
|
||||
|
||||
});
|
||||
clipboardDemos.on('error', function(e) {
|
||||
console.error('Action:', e.action);
|
||||
console.error('Trigger:', e.trigger);
|
||||
showTooltip(e.trigger, fallbackMessage(e.action));
|
||||
clipboard.on('error', function(e) {
|
||||
document.querySelector('.copy');
|
||||
new $.zui.Messager("复制失败!", {
|
||||
type: "danger" // 定义颜色主题
|
||||
}).show();
|
||||
});
|
||||
|
||||
// 取消/全选文件
|
||||
|
@ -221,6 +220,7 @@ $allUploud = getFileNumber(APP_ROOT . $config['path'] . $allUploud);
|
|||
|
||||
});
|
||||
}
|
||||
|
||||
// 返回顶部
|
||||
$(function() {
|
||||
var e = $("#rocket-to-top"),
|
||||
|
@ -285,8 +285,14 @@ $allUploud = getFileNumber(APP_ROOT . $config['path'] . $allUploud);
|
|||
"slow");
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
//懒加载
|
||||
var lazy = new Lazy({
|
||||
onload: function(elem) {
|
||||
console.log(elem)
|
||||
},
|
||||
delay: 300
|
||||
})
|
||||
|
||||
// 按日期浏览
|
||||
$(".form-date").datetimepicker({
|
||||
weekStart: 1,
|
||||
|
@ -300,12 +306,5 @@ $allUploud = getFileNumber(APP_ROOT . $config['path'] . $allUploud);
|
|||
});
|
||||
// 更改网页标题
|
||||
document.title = "图床广场 今日上传<?php echo read_total_json('todayUpload'); ?>张 昨日<?php echo read_total_json('yestUpload'); ?>张 - <?php echo $config['title']; ?> "
|
||||
//懒加载
|
||||
var lazy = new Lazy({
|
||||
onload: function(elem) {
|
||||
console.log(elem)
|
||||
},
|
||||
delay: 300
|
||||
})
|
||||
</script>
|
||||
<?php require_once APP_ROOT . '/application/footer.php';
|
||||
|
|
|
@ -11,20 +11,37 @@ if (isset($_POST['password'])) {
|
|||
}
|
||||
|
||||
?>
|
||||
<center>
|
||||
<div class="center" style="margin: 40px;">
|
||||
<form class="form-inline" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" onsubmit="return md5_post()">
|
||||
<div class="form-group">
|
||||
<div class="has-success">
|
||||
<input type="password" name="password" id="password" class="form-control" placeholder="请输入登录密码">
|
||||
</div>
|
||||
<input type="hidden" name="password" id="md5_password">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">登录</button>
|
||||
</form>
|
||||
<form class="form-horizontal" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" onsubmit="return md5_post()">
|
||||
<div class="form-group">
|
||||
<label for="account" class="col-sm-2">账号</label>
|
||||
<div class="has-success col-md-3 col-sm-5">
|
||||
<input type="text" name="account" id="account" class="form-control" value="Admin" placeholder="请输入登录账号" readonly>
|
||||
</div>
|
||||
</div>
|
||||
</center>
|
||||
<script src="<?php echo $config['domain']; ?>/public/static/md5.min.js"></script>
|
||||
<div class="form-group">
|
||||
<label for="password" class="col-sm-2">密码</label>
|
||||
<div class="has-success col-md-3 col-sm-5">
|
||||
<input type="password" name="password" id="password" class="form-control" placeholder="请输入登录密码">
|
||||
</div>
|
||||
<input type="hidden" name="password" id="md5_password">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" checked="checked"> 记住我
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button type="submit" class="btn btn-primary">登录</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script src="<?php static_cdn(); ?>/public/static/md5.min.js"></script>
|
||||
<script>
|
||||
function md5_post() {
|
||||
var password = document.getElementById('password');
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* 统计文件
|
||||
*
|
||||
|
@ -31,7 +32,10 @@ function total_files($file)
|
|||
closedir($dir);
|
||||
}
|
||||
|
||||
$totalJsonName = strval(md5_file(APP_ROOT . '/config/config.php')); // 以config.php文件的md5命名
|
||||
$total_file_path = APP_ROOT . $config['path']; // 获取用户自定义的上传目录
|
||||
$totalJsonMD5 = strval(md5_file(APP_ROOT . '/config/config.php')); // 以config.php文件的md5命名
|
||||
$totalJsonName = $total_file_path . "cache/total-files-$totalJsonMD5.php"; // 文件绝对目录
|
||||
|
||||
|
||||
function creat_json() // 创建json文件
|
||||
{
|
||||
|
@ -39,15 +43,17 @@ function creat_json() // 创建json文件
|
|||
global $filen;
|
||||
global $totalJsonName;
|
||||
global $config;
|
||||
$total_file_path = APP_ROOT . $config['path'];
|
||||
global $total_file_path;
|
||||
global $totalJsonMD5;
|
||||
|
||||
total_files($total_file_path);
|
||||
$usage_space = getDistUsed(getDirectorySize(APP_ROOT . $config['path']));
|
||||
$todayUpload = getFileNumber(APP_ROOT . config_path()); // 今日上传数量
|
||||
$yestUpload = getFileNumber(APP_ROOT . $config['path'] . date("Y/m/d/", strtotime("-1 day"))); // 昨日上传数量
|
||||
|
||||
$totalJsonInfo = [
|
||||
'filename' => $totalJsonName, // 文件名称
|
||||
'date' => date('YmdH', strtotime('-1 hour')), // 识别日期格式
|
||||
'filename' => $totalJsonMD5, // 统计文件名称
|
||||
'date' => date('YmdH'), // 识别日期格式
|
||||
'total_time' => date('Y-m-d H:i:s'), // 统计时间
|
||||
'dirnum' => $dirn, // 文件夹数量
|
||||
'filenum' => $filen, // 文件数量
|
||||
|
@ -57,30 +63,32 @@ function creat_json() // 创建json文件
|
|||
];
|
||||
$totalJsonInfo = json_encode($totalJsonInfo, true);
|
||||
if (is_dir($total_file_path . 'cache/')) {
|
||||
$totalJsonFile = fopen($total_file_path . "cache/$totalJsonName.php", 'w+');
|
||||
fwrite($totalJsonFile, $totalJsonInfo);
|
||||
fclose($totalJsonFile);
|
||||
file_put_contents($totalJsonName, $totalJsonInfo);
|
||||
} else {
|
||||
mkdir($total_file_path . 'cache/', 0777, true); // 创建cache目录
|
||||
file_put_contents($totalJsonName, $totalJsonInfo);
|
||||
}
|
||||
}
|
||||
|
||||
function read_total_json($total) // 读取json文件
|
||||
{
|
||||
global $config;
|
||||
global $totalJsonFile;
|
||||
global $totalJsonName;
|
||||
global $config;
|
||||
$cache_freq = $config['cache_freq'];
|
||||
|
||||
$totalJsonPath = APP_ROOT . $config['path'] . 'cache/' . $totalJsonName . '.php'; // 文件的路径
|
||||
|
||||
if (file_exists($totalJsonPath)) {
|
||||
$totalJsonFile = file_get_contents($totalJsonPath);
|
||||
if (file_exists($totalJsonName)) {
|
||||
$totalJsonFile = file_get_contents($totalJsonName);
|
||||
$totalJsonFile = json_decode($totalJsonFile, true);
|
||||
if ($totalJsonFile['date'] !== date('YmdH', strtotime('-1 hour'))) {
|
||||
creat_json();
|
||||
}
|
||||
} else {
|
||||
creat_json();
|
||||
$totalJsonFile = file_get_contents($totalJsonName);
|
||||
$totalJsonFile = json_decode($totalJsonFile, true);
|
||||
}
|
||||
|
||||
if ((date('YmdH') - $totalJsonFile['date']) > $cache_freq) {
|
||||
creat_json();
|
||||
$totalJsonFile = file_get_contents($totalJsonName);
|
||||
$totalJsonFile = json_decode($totalJsonFile, true);
|
||||
}
|
||||
|
||||
return $totalJsonFile[$total];
|
||||
|
|
|
@ -45,7 +45,7 @@ $config=Array
|
|||
<a href="https://app.cloudcone.com/?ref=3521" target="_blank"><img src="/public/images/ad.jpg" /></a>
|
||||
</div>
|
||||
',
|
||||
'showSwitch'=>1,
|
||||
'showSwitch'=>0,
|
||||
'listNumber'=>20,
|
||||
'customize'=>' <!-- 统计代码-->
|
||||
<script>
|
||||
|
@ -64,18 +64,28 @@ $config=Array
|
|||
<!--自定义代码举例:打赏、QQ邮箱、QQ群 可删除
|
||||
<iframe src="https://img.545141.com/sponsor/index.html" style="overflow-x:hidden;overflow-y:hidden; border:0xp none #fff; min-height:240px; width:100%;" frameborder="0" scrolling="no"></iframe>
|
||||
<a target="_blank" href="https://mail.qq.com/cgi-bin/qm_share?t=qm_mailme&email=cR0UHB4fGBwxAABfEh4c">
|
||||
<i class="icon icon-envelope-alt">联系邮箱 </i></span>
|
||||
<i class="icon icon-envelope-alt">联系邮箱 </i>
|
||||
</a>
|
||||
<a target="_blank" href="//shang.qq.com/wpa/qunwpa?idkey=3feb4e8be8f1839f71e53bf2e876de36afc6889b2630c33c877d8df5a5583a6f">
|
||||
<i class="icon icon-qq">加入QQ群</i></span>
|
||||
<i class="icon icon-qq">加入QQ群</i>
|
||||
</a>
|
||||
<a target="_blank" href="/master.zip"><i class="icon icon-download-alt">下载源码</i></a>
|
||||
--> ',
|
||||
'checkEnv'=>1,
|
||||
'checkImg'=>0,
|
||||
'checkImg_value'=>50,
|
||||
'version'=>'2.4.0',
|
||||
'version'=>'2.4.1',
|
||||
'form'=>'',
|
||||
'cache_freq'=>2,
|
||||
'TinyImag_key'=>'',
|
||||
'moderatecontent_key'=>''
|
||||
'moderatecontent_key'=>'',
|
||||
'footer'=>'<a href="/admin/terms.php" target="_blank">请勿上传违反中国政策的图片</a>
|
||||
<i class="icon icon-smile"></i> <br/>
|
||||
|
||||
Copyright © 2018-2021
|
||||
<a href="https://img.545141.com/" target="_blank"> EasyImage</a> By
|
||||
<a href="https://www.545141.com/902.html" target="_blank"> Icret</a> Version:
|
||||
<a href="https://github.com/icret/EasyImages2.0" target="_blank"> 2.4.0</a>
|
||||
<a href="/admin/terms.php" target="_blank"> DMCA</a>
|
||||
'
|
||||
);
|
|
@ -1 +0,0 @@
|
|||
{"filename":"d2efe4a4eedde82b566dc7eed5bb2513","date":"2021110910","total_time":"2021-11-09 11:00:16","dirnum":6,"filenum":8,"usage_space":"2.13MB","todayUpload":0,"yestUpload":0}
|
|
@ -1 +0,0 @@
|
|||
{"chart_data":[{"2021\/11\/09\/":0},{"2021\/11\/08\/":0},{"2021\/11\/07\/":2},{"2021\/11\/06\/":0},{"2021\/11\/05\/":0},{"2021\/11\/04\/":2},{"2021\/11\/03\/":0},{"2021\/11\/02\/":0},{"2021\/11\/01\/":0},{"2021\/10\/31\/":0},{"2021\/10\/30\/":0},{"2021\/10\/29\/":0},{"2021\/10\/28\/":0},{"2021\/10\/27\/":0},{"2021\/10\/26\/":0},{"2021\/10\/25\/":0},{"2021\/10\/24\/":0},{"2021\/10\/23\/":0},{"2021\/10\/22\/":0},{"2021\/10\/21\/":0},{"2021\/10\/20\/":0},{"2021\/10\/19\/":0},{"2021\/10\/18\/":0},{"2021\/10\/17\/":0},{"2021\/10\/16\/":0},{"2021\/10\/15\/":0},{"2021\/10\/14\/":0},{"2021\/10\/13\/":0},{"2021\/10\/12\/":0},{"2021\/10\/11\/":0}],"chart_disk":[{"2021\/11\/09\/":0},{"2021\/11\/08\/":0},{"2021\/11\/07\/":1113326},{"2021\/11\/06\/":0},{"2021\/11\/05\/":0},{"2021\/11\/04\/":1113326},{"2021\/11\/03\/":0},{"2021\/11\/02\/":0},{"2021\/11\/01\/":0},{"2021\/10\/31\/":0},{"2021\/10\/30\/":0},{"2021\/10\/29\/":0},{"2021\/10\/28\/":0},{"2021\/10\/27\/":0},{"2021\/10\/26\/":0},{"2021\/10\/25\/":0},{"2021\/10\/24\/":0},{"2021\/10\/23\/":0},{"2021\/10\/22\/":0},{"2021\/10\/21\/":0},{"2021\/10\/20\/":0},{"2021\/10\/19\/":0},{"2021\/10\/18\/":0},{"2021\/10\/17\/":0},{"2021\/10\/16\/":0},{"2021\/10\/15\/":0},{"2021\/10\/14\/":0},{"2021\/10\/13\/":0},{"2021\/10\/12\/":0},{"2021\/10\/11\/":0}],"total_time":"2021-11-09 10:56:01","date":"20211109"}
|
|
@ -2,7 +2,7 @@
|
|||
require_once 'application/header.php';
|
||||
|
||||
// 公告
|
||||
if (!empty($config['tips'])) {
|
||||
if (isset($config['tips'])) {
|
||||
echo '<ul style="list-style: none;margin:1px 1px 30px 1px;"><li class="icon icon-bullhorn text-muted"> ' . $config['tips'] . '</li></ul>';
|
||||
}
|
||||
// 检查登录
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue