v2.6.6
6
README.md
Normal file → Executable file
@ -180,6 +180,12 @@ $HTTP["url"] =~ "^/(i|public)/" {
|
||||
|
||||
<details><summary>点击查看2.0版更新日志</summary>
|
||||
|
||||
* 2022-07-09 v2.6.6
|
||||
- 增加图片信息显示随机图片
|
||||
- 增加文件雪花命名
|
||||
- 增加举报入口
|
||||
- 更新组件
|
||||
|
||||
* 2022-05-27 v2.6.5
|
||||
- 更改文件位置
|
||||
|
||||
|
25
admin/admin.inc.php
Normal file → Executable file
@ -337,7 +337,8 @@ if (isset($_GET['recycle_reimg'])) {
|
||||
<option value="unix" <?php if ($config['imgName'] == 'unix') echo 'selected'; ?>>Unix >> 1635074840</option>
|
||||
<option value="crc32" <?php if ($config['imgName'] == 'crc32') echo 'selected'; ?>>CRC32 >> 2495551279</option>
|
||||
<option value="uniqid" <?php if ($config['imgName'] == 'uniqid') echo 'selected'; ?>>微秒 >> 6175436c73418</option>
|
||||
<option value="source" <?php if ($config['imgName'] == 'source') echo 'selected'; ?>>源文件名 >> 微信图片_20211228214754</option>
|
||||
<option value="snowflake" <?php if ($config['imgName'] == 'snowflake') echo 'selected'; ?>>雪花 >> 5357520647037653166</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="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>
|
||||
@ -780,7 +781,7 @@ if (isset($_GET['recycle_reimg'])) {
|
||||
<a href="https://github.com/verot/class.upload.php" target="_blank"><span class="label label-badge label-success" data-toggle="tooltip" title="文件管理">Tinyfilemanager</span></a>
|
||||
<span class="label label-badge label-success" data-toggle="tooltip" title="当前版本"><?php echo get_current_verson(); ?></span>
|
||||
<?php if (getVersion() !== get_current_verson()) : ?>
|
||||
<a href="#NewVersion" data-toggle="collapse" class="label label-badge label-warning" title="Github有更新"><?php echo getVersion(); ?> New</span></a>
|
||||
<a href="#NewVersion" data-toggle="collapse" class="label label-badge label-warning" title="Github有更新"><?php echo getVersion(); ?></span><i class="icon icon-angle-down"></i></a>
|
||||
<?php endif; ?>
|
||||
<a href="https://github.com/icret/EasyImages2.0/blob/master/LICENSE" target="_blank"><span class="label label-badge" data-toggle="tooltip" title="许可证">GPL-2.0</span></a>
|
||||
</p>
|
||||
@ -842,16 +843,21 @@ if (isset($_GET['recycle_reimg'])) {
|
||||
<input type="checkbox" name="showSort" value="1" <?php if ($config['showSort']) echo 'checked="checked"'; ?>>
|
||||
<label style="font-weight: bold">排序</label>
|
||||
</div>
|
||||
<div class="switch switch-inline" data-toggle="tooltip" title="广场图片详细信息按钮">
|
||||
<input type="hidden" name="show_exif_info" value="0">
|
||||
<input type="checkbox" name="show_exif_info" value="1" <?php if ($config['show_exif_info']) echo 'checked="checked"'; ?>>
|
||||
<label style="font-weight: bold">详息</label>
|
||||
</div>
|
||||
<div class="switch switch-inline" data-toggle="tooltip" title="图片过多时可能会影响统计时间">
|
||||
<input type="hidden" name="chart_on" value="0">
|
||||
<input type="checkbox" name="chart_on" value="1" <?php if ($config['chart_on']) echo 'checked="checked"'; ?>>
|
||||
<label style="font-weight: bold">统计</label>
|
||||
</div>
|
||||
<div class="switch switch-inline" data-toggle="tooltip" title="广场图片详细信息按钮">
|
||||
<input type="hidden" name="show_exif_info" value="0">
|
||||
<input type="checkbox" name="show_exif_info" value="1" <?php if ($config['show_exif_info']) echo 'checked="checked"'; ?>>
|
||||
<label style="font-weight: bold">详情页</label>
|
||||
</div>
|
||||
<div class="switch switch-inline" data-toggle="tooltip" title="图片详细信息显示随机图片">
|
||||
<input type="hidden" name="info_rand_pic" value="0">
|
||||
<input type="checkbox" name="info_rand_pic" value="1" <?php if ($config['info_rand_pic']) echo 'checked="checked"'; ?>>
|
||||
<label style="font-weight: bold">随机图片</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label data-toggle="tooltip" title="暂支持中文简繁体转换">界面语言</label>
|
||||
@ -880,7 +886,10 @@ if (isset($_GET['recycle_reimg'])) {
|
||||
<input type="text" class="form-control" id="login_bg" name="login_bg" value="<? if ($config['login_bg']) echo $config['login_bg']; ?>" required="required" placeholder="图片地址可以是相对路径或网址" onkeyup="this.value=this.value.replace(/\s/g,'')">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
||||
<label for="report" data-toggle="tooltip" title="举报图片链接网址 (推荐ZOHO)<br/>留空则不显示">举报链接 | <a href="https://store.zoho.com.cn/referral.do?servicename=ZohoForms&category=ZohoForms&ref=52f8a4e98a7a7d4c2475713784605af0dc842f6cc9732dd77f37b87f2959149e212e550f50a869f70360f15b80a4abc6" target="_blank">申请</a></label>
|
||||
<input type="text" class="form-control" id="report" name="report" value="<? if ($config['report']) echo $config['report']; ?>" placeholder="可以是网址或邮箱" onkeyup="this.value=this.value.replace(/\s/g,'')">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-md-9">
|
||||
<label data-toggle="tooltip" title="可在网址后填写参数更改预览数量 eg: /list.php?num=3">广场默认浏览数量 | 当前: </label>
|
||||
<label id="listNumber"><?php echo $config['listNumber']; ?>张</label>
|
||||
|
0
admin/chart.php
Normal file → Executable file
0
admin/index.php
Normal file → Executable file
0
admin/manager.php
Normal file → Executable file
0
admin/terms.php
Normal file → Executable file
2
admin/verson.txt
Normal file → Executable file
@ -1 +1 @@
|
||||
2.6.5
|
||||
2.6.6
|
0
admin/zui.chart.php
Normal file → Executable file
0
api/index.php
Normal file → Executable file
0
api/public.php
Normal file → Executable file
0
application/TimThumb.php
Normal file → Executable file
0
application/WaterMask.php
Normal file → Executable file
0
application/captcha.php
Normal file → Executable file
0
application/chart.php
Normal file → Executable file
0
application/check.php
Normal file → Executable file
0
application/check_admin.inc.php
Normal file → Executable file
45
application/class.snowflake.php
Executable file
@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* 分布式 id 生成类 组成: <毫秒级时间戳+机器id+序列号>
|
||||
* 默认情况下41bit的时间戳可以支持该算法使用到2082年,10bit的工作机器id可以支持1023台机器,序列号支持1毫秒产生4095个自增序列id
|
||||
* @author zhangqi
|
||||
* @link https://www.cnblogs.com/njccqx/p/13402169.html
|
||||
*/
|
||||
class SnowFlake
|
||||
{
|
||||
const EPOCH = 1479533469598; //开始时间,固定一个小于当前时间的毫秒数
|
||||
const max12bit = 4095;
|
||||
const max41bit = 1099511627775;
|
||||
|
||||
static $machineId = 1; // 机器id
|
||||
|
||||
public static function machineId($mId = 0)
|
||||
{
|
||||
self::$machineId = $mId;
|
||||
}
|
||||
|
||||
public static function createOnlyId()
|
||||
{
|
||||
// 时间戳 42字节
|
||||
$time = floor(microtime(true) * 1000);
|
||||
// 当前时间 与 开始时间 差值
|
||||
$time -= self::EPOCH;
|
||||
// 二进制的 毫秒级时间戳
|
||||
$base = decbin(self::max41bit + $time);
|
||||
// 机器id 10 字节
|
||||
if (!self::$machineId) {
|
||||
$machineid = self::$machineId;
|
||||
} else {
|
||||
$machineid = str_pad(decbin(self::$machineId), 10, "0", STR_PAD_LEFT);
|
||||
}
|
||||
// 序列数 12字节
|
||||
$random = str_pad(decbin(mt_rand(0, self::max12bit)), 12, "0", STR_PAD_LEFT);
|
||||
// 拼接
|
||||
$base = $base . $machineid . $random;
|
||||
// 转化为 十进制 返回
|
||||
return bindec($base);
|
||||
}
|
||||
}
|
||||
// SnowFlake::machineId("1"); //机器编号
|
||||
// echo SnowFlake::createOnlyId();//分布式id
|
0
application/class.thumb.php
Normal file → Executable file
164
application/class.upload.php
Normal file → Executable file
@ -405,12 +405,28 @@ class Upload {
|
||||
|
||||
/**
|
||||
* Set this variable to false if you don't want to turn dangerous scripts into simple text files
|
||||
* The list of blacklisted extensions is in {@link dangerous}
|
||||
*
|
||||
* Note that this check happens before checking for forbidden MIME types or extensions
|
||||
* If you want to forbid uploads rather than turning scripts into text files,
|
||||
* set {@link no_script} to false and use {@link forbidden} instead
|
||||
*
|
||||
* @access public
|
||||
* @var boolean
|
||||
*/
|
||||
var $no_script;
|
||||
|
||||
/**
|
||||
* Dangerous file extensions
|
||||
*
|
||||
* List of dangerous extensions, that are enforced if {@link no_script} is true
|
||||
* If the file has such extension, then it is turned into a text file
|
||||
*
|
||||
* @access public
|
||||
* @var array
|
||||
*/
|
||||
var $dangerous;
|
||||
|
||||
/**
|
||||
* Set this variable to true to allow automatic renaming of the file
|
||||
* if the file already exists
|
||||
@ -1662,12 +1678,12 @@ class Upload {
|
||||
var $mime_types;
|
||||
|
||||
/**
|
||||
* Allowed MIME types
|
||||
* Allowed MIME types or file extensions
|
||||
*
|
||||
* Default is a selection of safe mime-types, but you might want to change it
|
||||
*
|
||||
* Simple wildcards are allowed, such as image/* or application/*
|
||||
* If there is only one MIME type allowed, then it can be a string instead of an array
|
||||
* Simple wildcards are allowed for MIME types, such as image/* or application/*
|
||||
* If there is only one MIME type allowed or file extension, then it can be a string instead of an array
|
||||
*
|
||||
* @access public
|
||||
* @var array OR string
|
||||
@ -1675,30 +1691,23 @@ class Upload {
|
||||
var $allowed;
|
||||
|
||||
/**
|
||||
* Forbidden MIME types
|
||||
* Forbidden MIME types or file extensions
|
||||
*
|
||||
* Default is a selection of safe mime-types, but you might want to change it
|
||||
* Default is a selection of forbidden file extensions, but you might want to change it
|
||||
* To only check for forbidden MIME types, and allow everything else, set {@link allowed} to array('* / *') without the spaces
|
||||
*
|
||||
* Simple wildcards are allowed, such as image/* or application/*
|
||||
* If there is only one MIME type forbidden, then it can be a string instead of an array
|
||||
* Note that if {@link no_script} is activated, dangerous scripts with extensions in {@link dangerous}
|
||||
* will be set to have a .txt extension prior to checking for forbidden extensions
|
||||
* If you want to forbid uploads rather than turning scripts into text files, set {@link no_script} to false
|
||||
*
|
||||
* Simple wildcards are allowed for MIME types, such as image/* or application/*
|
||||
* If there is only one MIME type or file extension forbidden, then it can be a string instead of an array
|
||||
*
|
||||
* @access public
|
||||
* @var array OR string
|
||||
*/
|
||||
var $forbidden;
|
||||
|
||||
/**
|
||||
* Blacklisted file extensions
|
||||
*
|
||||
* List of blacklisted extensions, that are enforced if {@link no_script} is true
|
||||
*
|
||||
* @access public
|
||||
* @var array
|
||||
*/
|
||||
var $blacklist;
|
||||
|
||||
|
||||
/**
|
||||
* Array of translated error messages
|
||||
*
|
||||
@ -1853,7 +1862,35 @@ class Upload {
|
||||
$this->image_frame_colors = '#FFFFFF #999999 #666666 #000000';
|
||||
$this->image_frame_opacity = 100;
|
||||
|
||||
$this->forbidden = array();
|
||||
$this->dangerous = array(
|
||||
'php',
|
||||
'php7',
|
||||
'php6',
|
||||
'php5',
|
||||
'php4',
|
||||
'php3',
|
||||
'phtml',
|
||||
'pht',
|
||||
'phpt',
|
||||
'phtm',
|
||||
'phps',
|
||||
'inc',
|
||||
'pl',
|
||||
'py',
|
||||
'cgi',
|
||||
'asp',
|
||||
'js',
|
||||
'sh',
|
||||
'bat',
|
||||
'phar',
|
||||
'wsdl',
|
||||
);
|
||||
|
||||
$this->forbidden = array_merge($this->dangerous, array(
|
||||
'exe',
|
||||
'dll',
|
||||
));
|
||||
|
||||
$this->allowed = array(
|
||||
'application/arj',
|
||||
'application/excel',
|
||||
@ -2036,27 +2073,6 @@ class Upload {
|
||||
'csv' => 'text/csv',
|
||||
);
|
||||
|
||||
$this->blacklist = array(
|
||||
'php',
|
||||
'php7',
|
||||
'php6',
|
||||
'php5',
|
||||
'php4',
|
||||
'php3',
|
||||
'phtml',
|
||||
'pht',
|
||||
'phpt',
|
||||
'phtm',
|
||||
'phps',
|
||||
'inc',
|
||||
'pl',
|
||||
'py',
|
||||
'cgi',
|
||||
'asp',
|
||||
'js',
|
||||
'sh',
|
||||
'phar',
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
@ -2093,7 +2109,7 @@ class Upload {
|
||||
*/
|
||||
function upload($file, $lang = 'en_GB') {
|
||||
|
||||
$this->version = '05/10/2021';
|
||||
$this->version = '13/06/2022';
|
||||
|
||||
$this->file_src_name = '';
|
||||
$this->file_src_name_body = '';
|
||||
@ -2429,7 +2445,7 @@ class Upload {
|
||||
// checks MIME type with Fileinfo PECL extension
|
||||
if (!$this->file_src_mime || !is_string($this->file_src_mime) || empty($this->file_src_mime) || strpos($this->file_src_mime, '/') === false) {
|
||||
if ($this->mime_fileinfo) {
|
||||
$this->log .= '- Checking MIME type with Fileinfo PECL extension<br />';
|
||||
$this->log .= '- checking MIME type with Fileinfo PECL extension<br />';
|
||||
if ($this->function_enabled('finfo_open')) {
|
||||
$path = null;
|
||||
if ($this->mime_fileinfo !== '') {
|
||||
@ -2493,7 +2509,7 @@ class Upload {
|
||||
// checks MIME type with shell if unix access is authorized
|
||||
if (!$this->file_src_mime || !is_string($this->file_src_mime) || empty($this->file_src_mime) || strpos($this->file_src_mime, '/') === false) {
|
||||
if ($this->mime_file) {
|
||||
$this->log .= '- Checking MIME type with UNIX file() command<br />';
|
||||
$this->log .= '- checking MIME type with UNIX file() command<br />';
|
||||
if (substr(PHP_OS, 0, 3) != 'WIN') {
|
||||
if ($this->function_enabled('exec') && $this->function_enabled('escapeshellarg')) {
|
||||
if (strlen($mime = @exec("file -bi ".escapeshellarg($this->file_src_pathname))) != 0) {
|
||||
@ -2522,7 +2538,7 @@ class Upload {
|
||||
// checks MIME type with mime_magic
|
||||
if (!$this->file_src_mime || !is_string($this->file_src_mime) || empty($this->file_src_mime) || strpos($this->file_src_mime, '/') === false) {
|
||||
if ($this->mime_magic) {
|
||||
$this->log .= '- Checking MIME type with mime.magic file (mime_content_type())<br />';
|
||||
$this->log .= '- checking MIME type with mime.magic file (mime_content_type())<br />';
|
||||
if ($this->function_enabled('mime_content_type')) {
|
||||
$this->file_src_mime = mime_content_type($this->file_src_pathname);
|
||||
$this->log .= ' MIME type detected as ' . $this->file_src_mime . ' by mime_content_type()<br />';
|
||||
@ -2543,7 +2559,7 @@ class Upload {
|
||||
// checks MIME type with getimagesize()
|
||||
if (!$this->file_src_mime || !is_string($this->file_src_mime) || empty($this->file_src_mime) || strpos($this->file_src_mime, '/') === false) {
|
||||
if ($this->mime_getimagesize) {
|
||||
$this->log .= '- Checking MIME type with getimagesize()<br />';
|
||||
$this->log .= '- checking MIME type with getimagesize()<br />';
|
||||
$info = getimagesize($this->file_src_pathname);
|
||||
if (is_array($info) && array_key_exists('mime', $info)) {
|
||||
$this->file_src_mime = trim($info['mime']);
|
||||
@ -2586,7 +2602,7 @@ class Upload {
|
||||
// we need to work some magic if we upload via Flash
|
||||
if ($this->file_src_mime == 'application/octet-stream' || !$this->file_src_mime || !is_string($this->file_src_mime) || empty($this->file_src_mime) || strpos($this->file_src_mime, '/') === false) {
|
||||
if ($this->file_src_mime == 'application/octet-stream') $this->log .= '- Flash may be rewriting MIME as application/octet-stream<br />';
|
||||
$this->log .= '- Try to guess MIME type from file extension (' . $this->file_src_name_ext . '): ';
|
||||
$this->log .= '- try to guess MIME type from file extension (' . $this->file_src_name_ext . '): ';
|
||||
if (array_key_exists($this->file_src_name_ext, $this->mime_types)) $this->file_src_mime = $this->mime_types[$this->file_src_name_ext];
|
||||
if ($this->file_src_mime == 'application/octet-stream') {
|
||||
$this->log .= 'doesn\'t look like anything known<br />';
|
||||
@ -2600,9 +2616,14 @@ class Upload {
|
||||
}
|
||||
|
||||
// determine whether the file is an image
|
||||
if ($this->file_src_mime && is_string($this->file_src_mime) && !empty($this->file_src_mime) && array_key_exists($this->file_src_mime, $this->image_supported)) {
|
||||
$this->file_is_image = true;
|
||||
$this->image_src_type = $this->image_supported[$this->file_src_mime];
|
||||
if ($this->file_src_mime && is_string($this->file_src_mime) && !empty($this->file_src_mime)) {
|
||||
if (array_key_exists($this->file_src_mime, $this->image_supported)) {
|
||||
$this->file_is_image = true;
|
||||
$this->image_src_type = $this->image_supported[$this->file_src_mime];
|
||||
$this->log .= '- file is an image, and its type is supported by GD<br />';
|
||||
} else if (strpos($this->file_src_mime, 'image/') !== FALSE && sizeof($this->image_supported) == 0) {
|
||||
$this->log .= '- file may be an image, but its type is not supported; is GD installed ?<br />';
|
||||
}
|
||||
}
|
||||
|
||||
// if the file is an image, we gather some useful data
|
||||
@ -2629,7 +2650,7 @@ class Upload {
|
||||
}
|
||||
|
||||
$this->log .= '<b>source variables</b><br />';
|
||||
$this->log .= '- You can use all these before calling process()<br />';
|
||||
$this->log .= '- you can use all these before calling process()<br />';
|
||||
$this->log .= ' file_src_name : ' . $this->file_src_name . '<br />';
|
||||
$this->log .= ' file_src_name_body : ' . $this->file_src_name_body . '<br />';
|
||||
$this->log .= ' file_src_name_ext : ' . $this->file_src_name_ext . '<br />';
|
||||
@ -3120,7 +3141,7 @@ class Upload {
|
||||
}
|
||||
// if the file is text based, or has a dangerous extension, we rename it as .txt
|
||||
if ((((substr($this->file_src_mime, 0, 5) == 'text/' && $this->file_src_mime != 'text/rtf') || strpos($this->file_src_mime, 'javascript') !== false) && (substr($file_src_name, -4) != '.txt'))
|
||||
|| preg_match('/\.(' . implode('|', $this->blacklist) . ')$/i', $this->file_src_name)
|
||||
|| preg_match('/\.(' . implode('|', $this->dangerous) . ')$/i', $this->file_src_name)
|
||||
|| $this->file_force_extension && empty($file_src_name_ext)) {
|
||||
$this->file_src_mime = 'text/plain';
|
||||
if ($this->file_src_name_ext) $file_src_name_body = $file_src_name_body . '.' . $this->file_src_name_ext;
|
||||
@ -3136,22 +3157,39 @@ class Upload {
|
||||
} else if ($this->mime_check && !empty($this->file_src_mime) && strpos($this->file_src_mime, '/') !== false) {
|
||||
list($m1, $m2) = explode('/', $this->file_src_mime);
|
||||
$allowed = false;
|
||||
// check wether the mime type is allowed
|
||||
// check wether the mime type or file extension is allowed
|
||||
if (!is_array($this->allowed)) $this->allowed = array($this->allowed);
|
||||
foreach($this->allowed as $k => $v) {
|
||||
list($v1, $v2) = explode('/', $v);
|
||||
if (($v1 == '*' && $v2 == '*') || ($v1 == $m1 && ($v2 == $m2 || $v2 == '*'))) {
|
||||
$allowed = true;
|
||||
break;
|
||||
if (strpos($v, '/') == false) {
|
||||
if ($v == '*' || strtolower($v) == strtolower($file_src_name_ext)) {
|
||||
$allowed = true;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
list($v1, $v2) = explode('/', $v);
|
||||
if (($v1 == '*' && $v2 == '*') || ($v1 == $m1 && ($v2 == $m2 || $v2 == '*'))) {
|
||||
$allowed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// check wether the mime type is forbidden
|
||||
if (!$allowed) $this->log .= '- MIME type and/or extension is not allowed !<br />';
|
||||
// check wether the mime type or file extension is forbidden
|
||||
if (!is_array($this->forbidden)) $this->forbidden = array($this->forbidden);
|
||||
foreach($this->forbidden as $k => $v) {
|
||||
list($v1, $v2) = explode('/', $v);
|
||||
if (($v1 == '*' && $v2 == '*') || ($v1 == $m1 && ($v2 == $m2 || $v2 == '*'))) {
|
||||
$allowed = false;
|
||||
break;
|
||||
if (strpos($v, '/') == false) {
|
||||
if ($v == '*' || strtolower($v) == strtolower($file_src_name_ext)) {
|
||||
$allowed = false;
|
||||
$this->log .= '- extension ' . $v . ' is forbidden !<br />';
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
list($v1, $v2) = explode('/', $v);
|
||||
if (($v1 == '*' && $v2 == '*') || ($v1 == $m1 && ($v2 == $m2 || $v2 == '*'))) {
|
||||
$allowed = false;
|
||||
$this->log .= '- MIME type ' . $v . ' is forbidden !<br />';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!$allowed) {
|
||||
@ -3159,6 +3197,7 @@ class Upload {
|
||||
$this->error = $this->translate('incorrect_file');
|
||||
} else {
|
||||
$this->log .= '- file mime OK : ' . $this->file_src_mime . '<br />';
|
||||
$this->log .= '- file extension OK : ' . $file_src_name_ext . '<br />';
|
||||
}
|
||||
} else {
|
||||
$this->log .= '- file mime (not checked) : ' . $this->file_src_mime . '<br />';
|
||||
@ -4504,10 +4543,9 @@ class Upload {
|
||||
$this->log .= 'error<br />';
|
||||
$this->image_text_font = 5;
|
||||
}
|
||||
}
|
||||
|
||||
// if the font is a string with a TTF font path, we check if we can access the font file
|
||||
if (!is_numeric($this->image_text_font) && strlen($this->image_text_font) > 4 && substr(strtolower($this->image_text_font), -4) == '.ttf') {
|
||||
} else if (!is_numeric($this->image_text_font) && strlen($this->image_text_font) > 4 && substr(strtolower($this->image_text_font), -4) == '.ttf') {
|
||||
$this->log .= ' try to load font ' . $this->image_text_font . '... ';
|
||||
if (strpos($this->image_text_font, '/') === false) $this->image_text_font = "./" . $this->image_text_font;
|
||||
if (file_exists($this->image_text_font) && is_readable($this->image_text_font)) {
|
||||
|
0
application/class.version.php
Normal file → Executable file
0
application/compress/Imagick/class.Imgcompress.php
Normal file → Executable file
0
application/compress/TinyImg/TinyImg.php
Normal file → Executable file
0
application/compress/TinyImg/cacert.pem
Normal file → Executable file
0
application/compress/function.compress.php
Normal file → Executable file
0
application/compressing.php
Normal file → Executable file
0
application/del.php
Normal file → Executable file
0
application/down.php
Normal file → Executable file
10
application/footer.php
Normal file → Executable file
@ -42,13 +42,11 @@ if ($config['notice_status'] == 1 && !empty($config['notice'])) : ?>
|
||||
<hr>
|
||||
<?php /** 页脚信息 */ if (!empty($config['footer'])) echo $config['footer']; ?>
|
||||
<p>
|
||||
© 2018-<?php echo date("Y"); ?>
|
||||
<a href="https://png.cm/" target="_blank"> EasyImage</a>
|
||||
<a href="https://github.com/icret/EasyImages2.0" target="_blank" rel="nofollow"><?php echo get_current_verson(); ?></a> By
|
||||
<a href="https://blog.png.cm" target="_blank">Icret</a>
|
||||
<a href="/admin/terms.php" target="_blank"> DMCA</a>
|
||||
<a href="https://github.com/icret/EasyImages2.0" target="_blank" rel="nofollow" data-toggle="tooltip" title="开源地址">© 2018-<?php echo date("Y"); ?></a>
|
||||
<a href="https://png.cm/" target="_blank" data-toggle="tooltip" title="<?php echo get_current_verson(); ?>"> EasyImage</a>
|
||||
<a href="/admin/terms.php" target="_blank" data-toggle="tooltip" title="使用协议"> DMCA</a>
|
||||
<!-- 二维码按钮 -->
|
||||
<a data-toggle="modal" href="#qr"><i class="icon icon-qrcode hidden-xs inline-block" data-toggle="tooltip" title="扫描二维码"></i></a>
|
||||
<a data-toggle="modal" href="#qr"><i class="icon icon-qrcode hidden-xs inline-block" data-toggle="tooltip" title="二维码"></i></a>
|
||||
<?php /** 暗黑模式 */ if ($config['dark-mode']) : ?>
|
||||
<a id="dark" data-toggle="tooltip" title="暗黑模式"><i class="icon icon-lightbulb" id="dark_ico"></i></a>
|
||||
<?php endif;
|
||||
|
4
application/function.php
Normal file → Executable file
@ -245,6 +245,10 @@ function imgName($source = null)
|
||||
// crc32加密微秒 例:2495551279
|
||||
return crc32(microtime());
|
||||
break;
|
||||
case "snowflake":
|
||||
include __DIR__ . '/class.snowflake.php';
|
||||
return SnowFlake::createOnlyId(); //分布式id
|
||||
break;
|
||||
default:
|
||||
// 将上传时间+随机数转换为36进制 例:vx77yu
|
||||
return base_convert(date('His') . mt_rand(1001, 9999), 10, 36);
|
||||
|
0
application/header.php
Normal file → Executable file
0
application/hide.php
Normal file → Executable file
92
application/info.php
Normal file → Executable file
@ -37,6 +37,7 @@ $imgSize = filesize($imgABPath);
|
||||
$upTime = filemtime($imgABPath);
|
||||
// 广告
|
||||
if ($config['ad_top']) echo $config['ad_top_info'];
|
||||
|
||||
?>
|
||||
<div class="col-md-12">
|
||||
<div class="col-md-6" style="text-align: center;">
|
||||
@ -70,6 +71,9 @@ if ($config['ad_top']) echo $config['ad_top_info'];
|
||||
<td>
|
||||
<a class="btn btn-mini btn-primary" href="<?php echo $img_url; ?>" target="_blank"><i class="icon icon-picture"> 查看</i></a>
|
||||
<a class="btn btn-mini btn-primary" href="/application/down.php?dw=<?php echo $getIMG; ?>" target="_blank"><i class="icon icon-cloud-download"> 下载</i></a>
|
||||
<?php if (!empty($config['report'])) : ?>
|
||||
<a class="btn btn-mini btn-warning" href="<?php echo $config['report'] . '?Website1=' . $img_url; ?>" target="_blank"><i class="icon icon-question-sign"> 举报</i></a>
|
||||
<?php endif; ?>
|
||||
<?php if (is_who_login('admin')) : ?>
|
||||
<a class="btn btn-mini btn-warning" href="/application/del.php?recycle_url=<?php echo $getIMG; ?>" target="_blank"><i class="icon icon-undo"> 回收</i></a>
|
||||
<a class="btn btn-mini btn-danger" href="/application/del.php?url=<?php echo $del_url; ?>" target="_blank"><i class="icon icon-trash"> 删除</i></a>
|
||||
@ -78,9 +82,8 @@ if ($config['ad_top']) echo $config['ad_top_info'];
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 class="with-padding hl-gray"><i class="icon icon-info-sign"> 此图片来自网友上传, 不代表<a href="/admin/terms.php" target="_blank">本站立场</a>, 若有侵权, 请联系管理员删除!</i></h4>
|
||||
<h4 class="with-padding hl-gray"><i class="icon icon-info-sign"> 此图片来自网友上传, 不代表<a href="/admin/terms.php" target="_blank">本站立场</a>, 若有侵权, 请举报或联系管理员!</i></h4>
|
||||
<!--
|
||||
|
||||
<h4>图片名称: < ?php echo pathinfo($getIMG, PATHINFO_FILENAME); ?></h4>
|
||||
<h4>图片大小: < ?php echo getDistUsed($imgSize); ?></h4>
|
||||
<h4>图片类型: image/< ?php echo pathinfo($getIMG, PATHINFO_EXTENSION); ?></h4>
|
||||
@ -112,41 +115,68 @@ if ($config['ad_top']) echo $config['ad_top_info'];
|
||||
-->
|
||||
</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> 直 链 </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>
|
||||
</div>
|
||||
<div class="col-md-6" style="padding-bottom: 10px;">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon"><i class="icon icon-chat"></i> 论坛代码 </span>
|
||||
<input type="text" class="form-control" id="bbscode" value="[img]<?php echo $img_url; ?>[/img]">
|
||||
<span class="input-group-btn"><button class="btn btn-default copyBtn2" type="button">复制</button></span>
|
||||
</div>
|
||||
<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> 直 链 </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>
|
||||
</div>
|
||||
<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-code"></i> MarkDown</span>
|
||||
<input type="text" class="form-control" id="markdown" value="![简单图床 - EasyImage](<?php echo $img_url; ?>)">
|
||||
<span class="input-group-btn"><button class="btn btn-default copyBtn3" type="button">复制</button></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6" style="padding-bottom: 10px;">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon"><i class="icon icon-html5"></i> HTML </span>
|
||||
<input type="text" class="form-control" id="html" value='<img src="<?php echo $img_url; ?>" alt="简单图床 - EasyImage" />'>
|
||||
<span class="input-group-btn"><button class="btn btn-default copyBtn4" type="button">复制</button></span>
|
||||
</div>
|
||||
<div class="col-md-6" style="padding-bottom: 10px;">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon"><i class="icon icon-chat"></i> 论坛代码 </span>
|
||||
<input type="text" class="form-control" id="bbscode" value="[img]<?php echo $img_url; ?>[/img]">
|
||||
<span class="input-group-btn"><button class="btn btn-default copyBtn2" type="button">复制</button></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<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-code"></i> MarkDown</span>
|
||||
<input type="text" class="form-control" id="markdown" value="![简单图床 - EasyImage](<?php echo $img_url; ?>)">
|
||||
<span class="input-group-btn"><button class="btn btn-default copyBtn3" type="button">复制</button></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6" style="padding-bottom: 10px;">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon"><i class="icon icon-html5"></i> HTML </span>
|
||||
<input type="text" class="form-control" id="html" value='<img src="<?php echo $img_url; ?>" alt="简单图床 - EasyImage" />'>
|
||||
<span class="input-group-btn"><button class="btn btn-default copyBtn4" type="button">复制</button></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<? /** 底部广告 */ if ($config['ad_bot']) echo $config['ad_bot_info']; ?>
|
||||
|
||||
<!-- 随机图片 -->
|
||||
<?php if ($config['info_rand_pic']) : ?>
|
||||
<div class="col-md-12" style="padding-bottom: 10px;">
|
||||
<h4 class="header-dividing">当月随机图片:</h4>
|
||||
<div class="cards cards-borderless">
|
||||
<?php
|
||||
$logFile = APP_ROOT . '/admin/logs/upload/' . date('Y-m') . '.php';
|
||||
if (is_file($logFile)) {
|
||||
include_once $logFile;
|
||||
for ($i = 0; $i <= 7; $i++) {
|
||||
$randName = array_rand($logs, 1);
|
||||
// echo $img_url . $logs[$randName]['path'];
|
||||
echo '
|
||||
<div class="col-md-4 col-sm-6 col-lg-3">
|
||||
<a class="card" href="?img=' . $logs[$randName]['path'] . '" target="_blank">
|
||||
<img src="' . $logs[$randName]['path'] . '">
|
||||
<div class="card-content text-muted text-ellipsis">' . $logs[$randName]['source'] . '</div>
|
||||
</a>
|
||||
</div>';
|
||||
}
|
||||
} else {
|
||||
echo '<div class="alert alert-danger">本月还没有上传的图片哟~~ <br />快来上传第一张吧~!</div>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<!-- <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>
|
||||
|
0
application/lang/class.upload.xx_XX.php
Normal file → Executable file
86
application/lang/class.upload.zh_CN.gb-2312.php
Executable file
@ -0,0 +1,86 @@
|
||||
<?php
|
||||
// +------------------------------------------------------------------------+
|
||||
// | class.upload.zh_CN.php |
|
||||
// +------------------------------------------------------------------------+
|
||||
// | Copyright (c) caoshiwei 2008. All rights reserved. |
|
||||
// | Version 0.25 |
|
||||
// | Last modified 09/29/2008 |
|
||||
// | Email caoshiwei@gmail.com |
|
||||
// | Web http://www.hfut.edu.cn |
|
||||
// +------------------------------------------------------------------------+
|
||||
// | This program is free software; you can redistribute it and/or modify |
|
||||
// | it under the terms of the GNU General Public License version 2 as |
|
||||
// | published by the Free Software Foundation. |
|
||||
// | |
|
||||
// | This program is distributed in the hope that it will be useful, |
|
||||
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||
// | GNU General Public License for more details. |
|
||||
// | |
|
||||
// | You should have received a copy of the GNU General Public License |
|
||||
// | along with this program; if not, write to the |
|
||||
// | Free Software Foundation, Inc., 59 Temple Place, Suite 330, |
|
||||
// | Boston, MA 02111-1307 USA |
|
||||
// | |
|
||||
// | Please give credit on sites that use class.upload and submit changes |
|
||||
// | of the script so other people can use them as well. |
|
||||
// | This script is free to use, don't abuse. |
|
||||
// +------------------------------------------------------------------------+
|
||||
|
||||
/**
|
||||
* Class upload Chinese translation
|
||||
*
|
||||
* @version 0.25
|
||||
* @codepage gb-2312
|
||||
* @author Shiwei Cao (caoshiwei@gmail.com)
|
||||
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||
* @copyright Shiwei Cao
|
||||
* @package cmf
|
||||
* @subpackage external
|
||||
*/
|
||||
|
||||
$translation = array();
|
||||
$translation['file_error'] = '<27>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
|
||||
$translation['local_file_missing'] = '<27><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>';
|
||||
$translation['local_file_not_readable'] = '<27><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ɶ<EFBFBD><C9B6>';
|
||||
$translation['uploaded_too_big_ini'] = '<27>ļ<EFBFBD><C4BC>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD> (<28>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>php.ini<6E><69>upload_max_filesize<7A><65><EFBFBD>õĴ<C3B5>С)<29><>';
|
||||
$translation['uploaded_too_big_html'] = '<27>ļ<EFBFBD><C4BC>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD> (<28>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>HTML <20><><EFBFBD><EFBFBD><EFBFBD>õĴ<C3B5>С)<29><>';
|
||||
$translation['uploaded_partial'] = '<27>ļ<EFBFBD><C4BC>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD> (<28>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ֶ<EFBFBD>ʧ)<29><>';
|
||||
$translation['uploaded_missing'] = '<27>ļ<EFBFBD><C4BC>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD> (<28>ϴ<EFBFBD><CFB4>ļ<EFBFBD><C4BC><EFBFBD>ʧ)<29><>';
|
||||
$translation['uploaded_unknown'] = '<27>ļ<EFBFBD><C4BC>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD> (δ֪<CEB4><D6AA><EFBFBD><EFBFBD>).';
|
||||
$translation['try_again'] = '<27>ļ<EFBFBD><C4BC>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
|
||||
$translation['file_too_big'] = '<27>ļ<EFBFBD>̫<EFBFBD><CCAB><EFBFBD><EFBFBD>';
|
||||
$translation['no_mime'] = 'δ֪<CEB4>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>͡<EFBFBD>';
|
||||
$translation['incorrect_file'] = '<27><><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ʽ<EFBFBD><CABD>';
|
||||
$translation['image_too_wide'] = 'ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD>̫<EFBFBD><CCAB><EFBFBD><EFBFBD>';
|
||||
$translation['image_too_narrow'] = 'ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD>̫С<CCAB><D0A1>';
|
||||
$translation['image_too_high'] = 'ͼƬ<CDBC>߶<EFBFBD>̫<EFBFBD><CCAB><EFBFBD><EFBFBD>';
|
||||
$translation['image_too_short'] = 'ͼƬ<CDBC>߶<EFBFBD>̫С<CCAB><D0A1>';
|
||||
$translation['ratio_too_high'] = 'ͼƬ<CDBC><C6AC>/<2F>߱<EFBFBD><DFB1><EFBFBD>̫<EFBFBD><CCAB>(ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD>̫<EFBFBD><CCAB>)<29><>';
|
||||
$translation['ratio_too_low'] = 'ͼƬ<CDBC><C6AC>/<2F>߱<EFBFBD><DFB1><EFBFBD>̫<EFBFBD><CCAB>(ͼƬ<CDBC>߶<EFBFBD>̫<EFBFBD><CCAB>).';
|
||||
$translation['too_many_pixels'] = 'ͼƬλ<C6AC><CEBB>̫<EFBFBD>ߡ<EFBFBD>';
|
||||
$translation['not_enough_pixels'] = 'ͼƬλ<C6AC><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
||||
$translation['file_not_uploaded'] = '<27>ļ<EFBFBD>δ<EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD>д<EFBFBD><D0B4><EFBFBD>';
|
||||
$translation['already_exists'] = '%s <20>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>';
|
||||
$translation['temp_file_missing'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ʱ)Դ<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD>д<EFBFBD><D0B4><EFBFBD>';
|
||||
$translation['source_missing'] = '<27><><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD>д<EFBFBD><D0B4><EFBFBD>';
|
||||
$translation['destination_dir'] = 'Ŀ<><C4BF><EFBFBD>ļ<EFBFBD>Ŀ¼<C4BF><C2BC><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD>д<EFBFBD><D0B4><EFBFBD>';
|
||||
$translation['destination_dir_missing'] = 'Ŀ<><C4BF><EFBFBD>ļ<EFBFBD>Ŀ¼<C4BF><C2BC><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD>д<EFBFBD><D0B4><EFBFBD>';
|
||||
$translation['destination_path_not_dir'] = 'Ŀ¼·<C2BC><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>Ŀ¼<C4BF><C2BC><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD>д<EFBFBD><D0B4><EFBFBD>';
|
||||
$translation['destination_dir_write'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>ļ<EFBFBD>Ŀ¼<C4BF><C2BC><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>д<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD>д<EFBFBD><D0B4><EFBFBD>';
|
||||
$translation['destination_path_write'] = 'Ŀ¼·<C2BC><C2B7><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD>д<EFBFBD><D0B4><EFBFBD>';
|
||||
$translation['temp_file'] = '<27><><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD>д<EFBFBD><D0B4><EFBFBD>';
|
||||
$translation['source_not_readable'] = 'Դ<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD>д<EFBFBD><D0B4><EFBFBD>';
|
||||
$translation['no_create_support'] = '%s <20><>֧<EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>';
|
||||
$translation['create_error'] = '<27><>Դ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> %s ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD><D0B3><EFBFBD>';
|
||||
$translation['source_invalid'] = '<27><EFBFBD><DEB7><EFBFBD>ȡԭʼͼƬ<CDBC><C6AC>ȷ<EFBFBD><C8B7><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>ͼƬ<CDBC>ļ<EFBFBD><C4BC><EFBFBD>';
|
||||
$translation['gd_missing'] = 'GD <20><><EFBFBD><EFBFBD><F1B2BBBF><EFBFBD>ʹ<EFBFBD>á<EFBFBD>';
|
||||
$translation['watermark_no_create_support'] = '%s <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>, <20><><EFBFBD>ܶ<EFBFBD>ȡˮӡ<CBAE>ļ<EFBFBD><C4BC><EFBFBD>';
|
||||
$translation['watermark_create_error'] = '%s <20><>֧<EFBFBD>ֶ<EFBFBD>, <20><><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>ˮӡ<CBAE><D3A1>';
|
||||
$translation['watermark_invalid'] = 'δ֪<CEB4>ļ<EFBFBD><C4BC><EFBFBD>ʽ, <20><EFBFBD><DEB7><EFBFBD>ȡˮӡ<CBAE>ļ<EFBFBD><C4BC><EFBFBD>';
|
||||
$translation['file_create'] = '%s <20><>֧<EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>';
|
||||
$translation['no_conversion_type'] = 'δ<><CEB4><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
||||
$translation['copy_failed'] = '<27>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> copy() <20><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>.';
|
||||
$translation['reading_failed'] = '<27><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD><D0B3><EFBFBD>';
|
||||
|
||||
?>
|
0
application/lang/class.upload.zh_CN.php
Normal file → Executable file
0
application/lang/class.upload.zh_TW.php
Normal file → Executable file
7
application/list.php
Normal file → Executable file
@ -61,13 +61,16 @@ if ($config['ad_top']) echo $config['ad_top_info'];
|
||||
$linkUrl = rand_imgurl() . $config_path . $value; // 图片复制与原图地址
|
||||
?>
|
||||
<div class="col-md-4 col-sm-6 col-lg-3">
|
||||
<div class="card">
|
||||
<div class="card" id="card">
|
||||
<li><img src="../public/images/loading.svg" data-image="<?php echo creat_thumbnail_by_list($imgUrl); ?>" data-original="<?php echo $imgUrl; ?>" alt="简单图床-EasyImage"></li>
|
||||
<div class="bottom-bar">
|
||||
<a href="<?php echo $linkUrl; ?>" target="_blank"><i class="icon icon-picture" data-toggle="tooltip" title="原图" style="margin-left:10px;"></i></a>
|
||||
<a href="#" class="copy" data-clipboard-text="<?php echo $linkUrl; ?>" data-toggle="tooltip" title="复制" style="margin-left:10px;"><i class="icon icon-copy"></i></a>
|
||||
<a href="/application/info.php?img=<?php echo $relative_path; ?>" data-toggle="tooltip" title="信息" target="_blank" style="margin-left:10px;"><i class="icon icon-info-sign"></i></a>
|
||||
<a href="/application/down.php?dw=<?php echo $relative_path; ?>" data-toggle="tooltip" title="下载" target="_blank" style="margin-left:10px;"><i class="icon icon-cloud-download"></i></a>
|
||||
<a href="/application/info.php?img=<?php echo $relative_path; ?>" data-toggle="tooltip" title="信息" target="_blank" style="margin-left:10px;"><i class="icon icon-info-sign"></i></a>
|
||||
<?php if (!empty($config['report'])) : ?>
|
||||
<a href="<?php echo $config['report'] . '?Website1=' . $linkUrl; ?>" target="_blank"><i class="icon icon-question-sign" data-toggle="tooltip" title="举报" style="margin-left:10px;"></i></a>
|
||||
<?php endif; ?>
|
||||
<?php if (is_who_login('admin')) : ?>
|
||||
<a href="/application/del.php?recycle_url=<?php echo $relative_path; ?>" target="_blank" data-toggle="tooltip" title="回收" style="margin-left:10px;"><i class="icon icon-undo"></i></a>
|
||||
<a href="/application/del.php?url=<?php echo $relative_path; ?>" target="_blank" data-toggle="tooltip" title="删除" style="margin-left:10px;"><i class="icon icon-trash"></i></a>
|
||||
|
0
application/md5.php
Normal file → Executable file
0
application/post_del.php
Normal file → Executable file
0
application/process.php
Normal file → Executable file
0
application/read_log.php
Normal file → Executable file
0
application/thumb.php
Normal file → Executable file
0
application/total_files.php
Normal file → Executable file
0
application/upload.php
Normal file → Executable file
0
config/api_key.php
Normal file → Executable file
0
config/config.guest.php
Normal file → Executable file
0
config/config.manager.php
Normal file → Executable file
8
config/config.php
Normal file → Executable file
@ -14,9 +14,9 @@ $config=Array
|
||||
'imgurl'=>'http://127.0.0.1',
|
||||
'user'=>'admin',
|
||||
'password'=>'e6e061838856bf47e1de730719fb2609',
|
||||
'captcha'=>1,
|
||||
'captcha'=>0,
|
||||
'mustLogin'=>0,
|
||||
'apiStatus'=>0,
|
||||
'apiStatus'=>1,
|
||||
'path'=>'/i/',
|
||||
'mime'=>'image/*,video/*',
|
||||
'imgName'=>'default',
|
||||
@ -64,6 +64,7 @@ $config=Array
|
||||
'dark-mode'=>1,
|
||||
'show_user_hash_del'=>1,
|
||||
'show_exif_info'=>1,
|
||||
'info_rand_pic'=>1,
|
||||
'chart_on'=>1,
|
||||
'check_ip'=>0,
|
||||
'check_ip_model'=>0,
|
||||
@ -84,6 +85,7 @@ $config=Array
|
||||
),
|
||||
'language'=>0,
|
||||
'login_bg'=>'https://img.paulzzh.com/touhou/random',
|
||||
'report'=>'',
|
||||
'image_recycl'=>1,
|
||||
'tinyfilemanager'=>1,
|
||||
'delDir'=>'thumbnails/',
|
||||
@ -94,7 +96,7 @@ $config=Array
|
||||
'guest_path_status'=>0,
|
||||
'token_path_status'=>0,
|
||||
'admin_path'=>'u',
|
||||
'update'=>'2022-05-27 00:06:41',
|
||||
'update'=>'2022-07-09 18:39:54',
|
||||
'footer'=>'<a href="/admin/terms.php" target="_blank">请勿上传违反中国政策的图片</a>
|
||||
<script>
|
||||
var _hmt = _hmt || [];
|
||||
|
0
favicon.ico
Normal file → Executable file
Before Width: | Height: | Size: 525 B After Width: | Height: | Size: 525 B |
0
i/.htaccess
Normal file → Executable file
0
i/index.html
Normal file → Executable file
0
install/README/1305032567.png
Normal file → Executable file
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
0
install/README/2657944724.png
Normal file → Executable file
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
0
install/README/3053540273.png
Normal file → Executable file
Before Width: | Height: | Size: 170 KiB After Width: | Height: | Size: 170 KiB |
0
install/README/674074848.png
Normal file → Executable file
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
0
install/README/chmod.png
Normal file → Executable file
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
0
install/README/info.png
Normal file → Executable file
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 164 KiB |
0
install/README/log.png
Normal file → Executable file
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
0
install/contorl.php
Normal file → Executable file
0
install/index.php
Normal file → Executable file
2
install/install.php
Normal file → Executable file
@ -181,7 +181,7 @@ if ($state !== 'checked') {
|
||||
</div>
|
||||
<?php echo 'Copyright © 2018-' . date('Y'); ?>
|
||||
<a href="https://png.cm/" target="_blank">EasyImage</a> By
|
||||
<a href="https://blog.png.cm/902.html" target="_blank">Icret</a> Version:<a href="https://github.com/icret/EasyImages2.0" target="_blank"><?php echo $config['version']; ?></a>
|
||||
<a href="https://blog.png.cm/902.html" target="_blank">Icret</a> Version:<a href="https://github.com/icret/EasyImages2.0" target="_blank"><?php echo get_current_verson(); ?></a>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
|
0
public/.htaccess
Normal file → Executable file
0
public/images/404.png
Normal file → Executable file
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
0
public/images/EasyImage2.0.png
Normal file → Executable file
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
0
public/images/alipay.jpg
Normal file → Executable file
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
0
public/images/image_icon_153794.png
Normal file → Executable file
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
0
public/images/loading.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
0
public/images/watermark.png
Normal file → Executable file
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 9.2 KiB |
0
public/images/wechat.jpg
Normal file → Executable file
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
0
public/static/EasyImage.css
Normal file → Executable file
0
public/static/EasyImage.js
Normal file → Executable file
0
public/static/echarts/echarts.min.js
vendored
Normal file → Executable file
0
public/static/exif/exif.js
Normal file → Executable file
0
public/static/fonts/FontAwesome.otf
Normal file → Executable file
0
public/static/fonts/fontawesome-webfont.eot
Normal file → Executable file
0
public/static/fonts/fontawesome-webfont.svg
Normal file → Executable file
Before Width: | Height: | Size: 434 KiB After Width: | Height: | Size: 434 KiB |