升级静态文件

pull/141/head
icret 2022-03-16 15:18:32 +08:00
parent 699b4451ce
commit 1ccb28e2e9
7 changed files with 179 additions and 136 deletions

View File

@ -3,13 +3,6 @@
演示地址:[https://png.cm/](https://png.cm/) 演示地址:[https://png.cm/](https://png.cm/)
之前一直用的图床程序是:[PHP多图长传程序2.4.3](https://www.jb51.net/codes/40544.html) 之前一直用的图床程序是:[PHP多图长传程序2.4.3](https://www.jb51.net/codes/40544.html)
由于版本过老并且使用falsh上传在当前html5流行大势所趋下遂利用基础知识新写了一个以html5为默认上传并且支持flash,向下兼容至IE9。 由于版本过老并且使用falsh上传在当前html5流行大势所趋下遂利用基础知识新写了一个以html5为默认上传并且支持flash,向下兼容至IE9。
>
[演示](https://png.cm/)  
[Chrome/Edge 插件](https://github.com/icret/EasyImage-Browser-Extension)  
[使用手册](https://www.kancloud.cn/easyimage/easyimage/)  
[问题反馈](https://support.qq.com/products/367633)  
[QQ群](https://shang.qq.com/wpa/qunwpa?idkey=3feb4e8be8f1839f71e53bf2e876de36afc6889b2630c33c877d8df5a5583a6f)
[![PHP](https://img.shields.io/badge/PHP->=5.6-orange.svg)](http://php.net) [![PHP](https://img.shields.io/badge/PHP->=5.6-orange.svg)](http://php.net)
[![Release](https://img.shields.io/github/v/release/icret/EasyImages2.0)](https://github.com/icret/EasyImages2.0/releases) [![Release](https://img.shields.io/github/v/release/icret/EasyImages2.0)](https://github.com/icret/EasyImages2.0/releases)
@ -18,7 +11,10 @@
[![jsdelivr](https://data.jsdelivr.com/v1/package/gh/icret/EasyImages2.0/badge)](https://cdn.jsdelivr.net/gh/icret/EasyImages2.0@EasyImage2.0/) [![jsdelivr](https://data.jsdelivr.com/v1/package/gh/icret/EasyImages2.0/badge)](https://cdn.jsdelivr.net/gh/icret/EasyImages2.0@EasyImage2.0/)
[![Code size](https://img.shields.io/github/languages/code-size/icret/EasyImages2.0?color=blueviolet)](https://github.com/icret/EasyImages2.0) [![Code size](https://img.shields.io/github/languages/code-size/icret/EasyImages2.0?color=blueviolet)](https://github.com/icret/EasyImages2.0)
[![License](https://img.shields.io/badge/license-GPL_V2.0-yellowgreen.svg)](https://github.com/icret/EasyImages2.0/blob/master/LICENSE) [![License](https://img.shields.io/badge/license-GPL_V2.0-yellowgreen.svg)](https://github.com/icret/EasyImages2.0/blob/master/LICENSE)
[![QQ group](https://pub.idqqimg.com/wpa/images/group.png)](https://qm.qq.com/cgi-bin/qm/qr?k=TmGoIK7BXij_CR3lqZoJZu3_trPwtJ09&jump_from=webapi)
>[演示](https://png.cm/) | [Chrome/Edge 插件](https://github.com/icret/EasyImage-Browser-Extension) | [使用手册](https://www.kancloud.cn/easyimage/easyimage/)
>
>本人善写bug 发现bug可提交 [issues](https://github.com/icret/EasyImages2.0/issues) 追求稳定请下载 [稳定版](https://github.com/icret/EasyImages2.0/releases) >本人善写bug 发现bug可提交 [issues](https://github.com/icret/EasyImages2.0/issues) 追求稳定请下载 [稳定版](https://github.com/icret/EasyImages2.0/releases)
## 目录 ## 目录
@ -55,8 +51,8 @@
9. `upload File size exceeds the maximum value` 调整`PHP`上传大小 9. `upload File size exceeds the maximum value` 调整`PHP`上传大小
10. `undefined function imagecreatefromwebp()`GD没安装webp, 以此类推 10. `undefined function imagecreatefromwebp()`GD没安装webp, 以此类推
11. `Warning: is_dir(): open_basedir restriction in effect`解决方法同`3` 11. `Warning: is_dir(): open_basedir restriction in effect`解决方法同`3`
12. 出现`Fatal error: Allowed memory size......`主机内存或分配给PHP的内存不够 解决方法百度 12. `Fatal error: Allowed memory size......`主机内存或分配给PHP的内存不够 解决方法百度
13. 如果开启原图保护功后打开图片链接显示`404`是因为`nginx`或`Apache`页面缓存导致的,`Nginx`解决办法: 13. 开启原图保护功后打开图片链接显示`404`是因为`nginx`或`Apache`页面缓存导致的,`Nginx`解决办法:
```Nginx ```Nginx
# 把Nginx这段配置删掉 # 把Nginx这段配置删掉
@ -81,7 +77,6 @@ location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
- 备份`config`目录(没有增加上传用户和api可以只保留`config.php`文件)和`上传文件目录` - 备份`config`目录(没有增加上传用户和api可以只保留`config.php`文件)和`上传文件目录`
- 将新程序下载至网站目录解压覆盖,然后将备份的文件替换既完成升级 - 将新程序下载至网站目录解压覆盖,然后将备份的文件替换既完成升级
- 如果出现错误请在设置中把所有底部设置点击一次`保存` - 如果出现错误请在设置中把所有底部设置点击一次`保存`
-
## 安全配置 ## 安全配置
@ -116,7 +111,10 @@ $HTTP["url"] =~ "^/(i|public)/" {
<details><summary>点击查看2.0版更新日志</summary> <details><summary>点击查看2.0版更新日志</summary>
* 2022-3-13 v2.5.6 dev * 2022-3-15 v2.5.7 dev
- 检测更改域名改为检测局域网
* 2022-3-13 v2.5.6
- 修复加密删除后不能正确提示 - 修复加密删除后不能正确提示
- 修复webp转换其他格式失败 - 修复webp转换其他格式失败
- 修复文字水印透明度不生效 - 修复文字水印透明度不生效

View File

@ -290,14 +290,15 @@ if (isset($_GET['recycle_reimg'])) {
<div class="form-group"> <div class="form-group">
<label>图片命名方式</label> <label>图片命名方式</label>
<select class="chosen-select form-control" name="imgName"> <select class="chosen-select form-control" name="imgName">
<option value="default" <?php if ($config['imgName'] == 'default') echo 'selected'; ?>>默认 - 以上传时间+4位随机数转换为36进制 例: vx77yu</option> <option value="default" <?php if ($config['imgName'] == 'default') echo 'selected'; ?>>默认 - 上传时间+4位随机数的36进制 >> vx77yu</option>
<option value="source" <?php if ($config['imgName'] == 'source') echo 'selected'; ?>>以上传文件名称 例: 微信图片_20211228214754</option> <option value="date" <?php if ($config['imgName'] == 'date') echo 'selected'; ?>>上传时间 >> 192704</option>
<option value="date" <?php if ($config['imgName'] == 'date') echo 'selected'; ?>>以上传时间 例: 192704</option> <option value="crc32" <?php if ($config['imgName'] == 'crc32') echo 'selected'; ?>>CRC32 >> 2495551279</option>
<option value="unix" <?php if ($config['imgName'] == 'unix') echo 'selected'; ?>>以Unix时间 例: 1635074840</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="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="source" <?php if ($config['imgName'] == 'source') echo 'selected'; ?>>源文件名 >> 微信图片_20211228214754</option>
<option value="md5" <?php if ($config['imgName'] == 'md5') echo 'selected'; ?>>md5加密时间 例: 3888aa69eb321a2b61fcc63520bf6c82</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="sha1" <?php if ($config['imgName'] == 'sha1') echo 'selected'; ?>>SHA1 >> 654faac01499e0cb5fb0e9d78b21e234c63d842a</option>
<option value="guid" <?php if ($config['imgName'] == 'guid') echo 'selected'; ?>>全局唯一标识符 >> 6EDAD0CC-AB0C-4F61-BCCA-05FAD65BF0FA</option>
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
@ -818,7 +819,8 @@ if (isset($_GET['recycle_reimg'])) {
</p> </p>
<p> <p>
<span class="label label-badge label-info">当前版本:<?php echo $config['version']; ?></span> <span class="label label-badge label-info">当前版本:<?php echo $config['version']; ?></span>
<a href="https://github.com/icret/EasyImages2.0/releases" target="_blank"><span class="label label-badge label-success" data-toggle="tooltip" title="更新后删除<p>/admin/logs/verson/</p>文件夹会自动同步版本">最新版本:<?php echo getVersion(); ?></span></a> </p> <a href="https://github.com/icret/EasyImages2.0/releases" target="_blank"><span class="label label-badge label-success" data-toggle="tooltip" title="更新后删除<p>/admin/logs/verson/</p>文件夹会自动同步版本">最新版本:<?php echo getVersion(); ?></span></a>
</p>
</div> </div>
</div> </div>
<div class="tab-pane fade" id="Content9"> <div class="tab-pane fade" id="Content9">

View File

@ -13,16 +13,7 @@ foreach ($expand as $val) {
'; ';
} }
} }
// 检测是否更改默认域名
if (strstr('localhost|127.0.0.1', $_SERVER['HTTP_HOST'])) {
echo '
<script>
new $.zui.Messager("请修改默认域名,可能会导致网站访问异常! ",{
type: "black" // 定义颜色主题
}).show();
</script>
';
}
// 检测是否修改默认密码 // 检测是否修改默认密码
if ($config['password'] === 'e6e061838856bf47e1de730719fb2609') { if ($config['password'] === 'e6e061838856bf47e1de730719fb2609') {
echo ' echo '
@ -34,6 +25,31 @@ if ($config['password'] === 'e6e061838856bf47e1de730719fb2609') {
</script> </script>
'; ';
} }
/*
// 检测是否更改默认域名
if (strstr('localhost|127.0.0.1|192.168.', $_SERVER['HTTP_HOST'])) {
echo '
<script>
new $.zui.Messager("请修改默认域名,可能会导致网站访问异常! ",{
type: "black" // 定义颜色主题
}).show();
</script>
';
}
*/
// 检测是否局域网访问
if (is_local($config['domain'])) {
echo '
<script>
new $.zui.Messager("当前使用局域网,可能会导致外网访问异常!",{
type: "black" // 定义颜色主题
}).show();
</script>
';
}
// 检测监黄接口是否可以访问 // 检测监黄接口是否可以访问
if ($configp['checkImg'] !== 0) { if ($configp['checkImg'] !== 0) {

View File

@ -112,34 +112,47 @@ function imgName($source = null)
return trim(com_create_guid(), '{}'); return trim(com_create_guid(), '{}');
} }
return strtolower(sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535))); return sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535));
} }
switch ($config['imgName']) { switch ($config['imgName']) {
case "source": // 以上传文件名称 例微信图片_20211228214754
case "source":
// 以上传文件名称 例微信图片_20211228214754
// 过滤非法名称 $source = preg_replace("/\/|\~|\!|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\_|\+|\{|\}|\:|\<|\>|\?|\[|\]|\,|\.|\/|\;|\'|\`|\-|\=|\\\|\|/","",$source); // 过滤非法名称 $source = preg_replace("/\/|\~|\!|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\_|\+|\{|\}|\:|\<|\>|\?|\[|\]|\,|\.|\/|\;|\'|\`|\-|\=|\\\|\|/","",$source);
return $source; return $source;
break; break;
case "date": // 以上传时间 例192704 case "date":
// 以上传时间 例192704
return date("His"); return date("His");
break; break;
case "unix": // 以Unix时间 例1635074840 case "unix":
// 以Unix时间 例1635074840
return time(); return time();
break; break;
case "uniqid": // 基于以微秒计的当前时间 例6175436c73418 case "uniqid":
// 基于以微秒计的当前时间 例6175436c73418
return uniqid(true); return uniqid(true);
break; break;
case "guid": // 全球唯一标识符 例6EDAD0CC-AB0C-4F61-BCCA-05FAD65BF0FA case "guid":
// 全球唯一标识符 例6EDAD0CC-AB0C-4F61-BCCA-05FAD65BF0FA
return create_guid(); return create_guid();
break; break;
case "md5": // md5加密时间 例3888aa69eb321a2b61fcc63520bf6c82 case "md5":
// md5加密时间 例3888aa69eb321a2b61fcc63520bf6c82
return md5(microtime()); return md5(microtime());
break; break;
case "sha1": // sha1加密微秒 例654faac01499e0cb5fb0e9d78b21e234c63d842a case "sha1":
// sha1加密微秒 例654faac01499e0cb5fb0e9d78b21e234c63d842a
return sha1(microtime()); return sha1(microtime());
break; break;
case "crc32":
// crc32加密微秒 例2495551279
return crc32(microtime());
break;
default: default:
return base_convert(date('His') . mt_rand(1001, 9999), 10, 36); // 将上传时间+随机数转换为36进制 例vx77yu // 将上传时间+随机数转换为36进制 例vx77yu
return base_convert(date('His') . mt_rand(1001, 9999), 10, 36);
} }
} }
@ -1163,8 +1176,23 @@ function isWebpAnimated($src)
// animated // animated
$isAnimated = true; $isAnimated = true;
} else { } else {
// non animated // not animated
$isAnimated = false; $isAnimated = false;
} }
return $isAnimated; return $isAnimated;
} }
/**
* 根据URL判断是否本地局域网访问PHP代码函数
* https://blog.csdn.net/monxinmonxin0/article/details/44854383
* @param $url 要判断的网址
* @return bool |
*/
function is_local($url)
{
if (stristr($url, 'localhost') || stristr($url, '127.') || stristr($url, '192.')) {
return true;
} else {
return false;
}
}

View File

@ -73,12 +73,12 @@
.card { .card {
box-shadow: rgba(0, 0, 0, 0.45) 0px 25px 20px -20px; box-shadow: rgba(0, 0, 0, 0.45) 0px 25px 20px -20px;
border-radius: 10px; border-radius: 5px 5px 5px 5px;
} }
img { img {
cursor: pointer; cursor: pointer;
transition: all 0.6s; transition: all 0.8s;
} }
img:hover { img:hover {
@ -90,9 +90,8 @@
.bottom-bar { .bottom-bar {
width: 100%; width: 100%;
position: absolute; position: absolute;
left: 0; bottom: -4px;
bottom: 0px; background-color: rgba(0, 0, 0, 0.4);
background-color: rgba(0, 0, 0, 0.5);
} }
</style> </style>
<div class="row" style="margin-bottom:100px"> <div class="row" style="margin-bottom:100px">

View File

@ -48,7 +48,7 @@ Thumb::show($src, $w, $h);
require_once __DIR__ . '/function.php'; require_once __DIR__ . '/function.php';
// 中文翻译 https://my.oschina.net/whrlmc/blog/81739 // 中文翻译 https://my.oschina.net/whrlmc/blog/81739
define('LOCAL_FILE_BASE_DIRECTORY', APP_ROOT); define('LOCAL_FILE_BASE_DIRECTORY', APP_ROOT);
define('MEMORY_LIMIT', '128M'); define('MEMORY_LIMIT', '256M');
define('DEFAULT_WIDTH', 258); define('DEFAULT_WIDTH', 258);
define('DEFAULT_HEIGHT', 258); define('DEFAULT_HEIGHT', 258);
define('FILE_CACHE_PREFIX', 'EasyImage'); define('FILE_CACHE_PREFIX', 'EasyImage');

View File

@ -3,8 +3,8 @@ $config=Array
( (
'title'=>'简单图床 - EasyImage', 'title'=>'简单图床 - EasyImage',
'keywords'=>'简单图床,easyimage,无数据库图床,PHP多图长传程序,自适应页面,HTML5,markdown,bbscode,一键复制', 'keywords'=>'简单图床,easyimage,无数据库图床,PHP多图长传程序,自适应页面,HTML5,markdown,bbscode,一键复制',
'description'=>'简单图床EasyImage是一款支持多文件上传的无数据库图床,可以完美替代PHP多图上传程序最新html5自适应页面兼容手机电脑上传后返回图片直链markdown图片论坛贴图bbscode链接简单方便支持一键复制支持多域名api上传。', 'description'=>'简单图床EasyImage是一款支持多文件上传的无数据库图床,可以完美替代PHP多图上传程序,最新html5自适应页面兼容手机电脑,上传后返回图片直链,markdown图片,论坛贴图bbscode链接,简单方便支持一键复制,支持多域名,api上传',
'tips'=>'<a><li class="icon icon-bullhorn text-muted"> 单文件≤10M单次上传≤30张</li></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-heart"> 简单图床是一款开源图床, 支持多文件上传无数据库</i></a>
<a href="https://github.com/icret/EasyImages2.0" target="_black"><i class="icon icon-github"> 如果你喜欢这种图床风格就下载喔 (๑•̀ㅂ•́)و✧</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', 'domain'=>'http://127.0.0.1',
@ -100,7 +100,7 @@ var _hmt = _hmt || [];
'delDir'=>'thumbnails/', 'delDir'=>'thumbnails/',
'hide'=>0, 'hide'=>0,
'version'=>'2.5.6', 'version'=>'2.5.6',
'update'=>'2022-03-14 17:48:22', 'update'=>'2022-03-16 01:57:25',
'terms'=>'<div class="container"> 'terms'=>'<div class="container">
<div class="row"> <div class="row">
<div class="col-xs-3"> <div class="col-xs-3">