上传组件更新-支持PHP8
parent
a3a39055c8
commit
fb46892b91
221
api/api-web.php
221
api/api-web.php
|
@ -1,221 +0,0 @@
|
|||
<?php
|
||||
/*
|
||||
* API 页面管理
|
||||
*/
|
||||
require_once '../libs/header.php';
|
||||
require_once APP_ROOT . '/config/api_key.php';
|
||||
require_once APP_ROOT . '/api/libs//apiFunction.php';
|
||||
|
||||
// 检测登录
|
||||
if (!is_online()) {
|
||||
checkLogin();
|
||||
}
|
||||
|
||||
// 查找用户ID或者Token
|
||||
if (isset($_POST['radio'])) {
|
||||
if ($_POST['radio'] == 'id') {
|
||||
$radio_value = '用户token:' . getIDToken($_POST['radio-value']);
|
||||
} elseif ($_POST['radio'] == 'token') {
|
||||
$radio_value = '用户ID:' . getID($_POST['radio-value']);
|
||||
} else {
|
||||
$radio_value = null;
|
||||
}
|
||||
}
|
||||
// 删除非空目录
|
||||
if (isset($_POST['delDir'])) {
|
||||
$delDir = APP_ROOT . $config['path'] . $_POST['delDir'];
|
||||
if (deldir($delDir)) {
|
||||
echo '
|
||||
<script> new $.zui.Messager("删除成功!", {type: "success" // 定义颜色主题
|
||||
}).show();</script>';
|
||||
header("refresh:1;"); // 1s后刷新当前页面
|
||||
} else {
|
||||
echo '
|
||||
<script> new $.zui.Messager("删除失败!", {type: "danger" // 定义颜色主题
|
||||
}).show();</script>';
|
||||
header("refresh:1;"); // 1s后刷新当前页面
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="container">
|
||||
</div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="alert alert-primary">
|
||||
<h3 style="text-align:center">EasyImage2.0 快捷操作中心</h2>
|
||||
<hr />
|
||||
<h5>目录保存以 年/月/日/ 递进,非必要请勿修改!否则会导致部分操作不可用;</h5>
|
||||
<h5>本人仅为程序开源创作,如非法网站使用与本人无关,请勿用于非法用途;</h5>
|
||||
<h5>请为本人博客<a href="https://www.545141.com/" target="_blank">www.545141.com</a>加上网址链接,谢谢支持。作为开发者你可以对相应的后台功能进行扩展(增删改相应代码),但请保留代码中相关来源信息(例如:本人博客,邮箱等)。</h5>
|
||||
<p>
|
||||
<button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#collapseExample">服务信息<i class="icon icon-hand-down"></i></button>
|
||||
</p>
|
||||
<div class="collapse" id="collapseExample">
|
||||
<div class="bg-danger with-padding">
|
||||
<h5>系统信息</h5>
|
||||
<hr />
|
||||
<p>服务器系统:<?PHP echo php_uname('s') . ' <small class="text-muted">' . php_uname() . '</small>'; ?></p>
|
||||
<p>WEB服务:<?PHP echo $_SERVER['SERVER_SOFTWARE']; ?></p>
|
||||
<p>服务器IP:<?PHP echo GetHostByName($_SERVER['SERVER_NAME']) ?></p>
|
||||
<p>系统时间:<?PHP echo date("Y-m-d G:i:s"); ?></p>
|
||||
<p>已用空间:<?php echo getDistUsed(disk_total_space(__DIR__) - disk_free_space(__DIR__)) . ' 剩余空间:' . getDistUsed(disk_free_space(__DIR__)); ?></p>
|
||||
<h5>PHP信息</h5>
|
||||
<hr />
|
||||
<p>PHP版本:<?php echo phpversion(); ?></p>
|
||||
<p>GD版本:<?php echo (gd_info()["GD Version"]); ?></p>
|
||||
<p>PHP上传限制:<?PHP echo get_cfg_var("upload_max_filesize"); ?></p>
|
||||
<p>POST上传限制:<?php echo ini_get('post_max_size'); ?></p>
|
||||
<p>PHP最长执行时间:<?PHP echo get_cfg_var("max_execution_time") . "秒 "; ?></p>
|
||||
<p>PHP允许占用内存:<?PHP echo get_cfg_var("memory_limit") . "M "; ?></p>
|
||||
<h5>我的信息</h5>
|
||||
<hr />
|
||||
<p>浏览器:<?php echo $_SERVER['HTTP_USER_AGENT']; ?></p>
|
||||
<p>访问者IP:<?php echo $_SERVER["REMOTE_ADDR"]; ?></p>
|
||||
<h5>图床信息</h5>
|
||||
<hr />
|
||||
<p><?php
|
||||
$yesterday = date("Y/m/d/", strtotime("-1 day"));
|
||||
echo '今日上传:' . getFileNumber(APP_ROOT . config_path()) . ' 昨日上传:' . getFileNumber(APP_ROOT . $config['path'] . $yesterday); ?>
|
||||
</p>
|
||||
<p>当前版本:<?php echo $config['version']; ?>,Github版本:<a href="https://github.com/icret/EasyImages2.0/releases" target="_blank"><?php echo getVersion(); ?></a></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="col-md-4">
|
||||
<form class="form-condensed" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
|
||||
<label for="exampleInputMoney1">
|
||||
新Token需按要求填入
|
||||
<code>
|
||||
/config/api_key.php
|
||||
</code>
|
||||
才生效
|
||||
</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon">
|
||||
New Token
|
||||
</span>
|
||||
<input type="text" class="form-control" id="exampleInputMoney1" value="<?php echo privateToken(); ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<form></form>
|
||||
<form class="form-condensed" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
|
||||
<div class="form-group">
|
||||
<label for="exampleInputAccount6">根据ID/Token查找用户信息</label>
|
||||
<input type="text" name="radio-value" id="exampleInputAccount6" class="form-control" placeholder="输入信息" value="<?php echo @$radio_value; ?>">
|
||||
<div class="radio-primary"><input type="radio" name="radio" value="id" id="primaryradio1" checked="checked"><label for="primaryradio1">根据ID查找用户Token</label></div>
|
||||
<div class="radio-primary"><input type="radio" name="radio" value="token" id="primaryradio2"><label for="primaryradio2">根据Token查找用户ID</label></div>
|
||||
<button type="submit" class="btn btn-mini btn-primary">
|
||||
查找
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div id="delimgurl"></div>
|
||||
<div id="title"></div>
|
||||
<form class="form-condensed" method="get" action="del.php" id="form" name="delForm" onSubmit="getStr();" target="_blank">
|
||||
<div class="form-group">
|
||||
<label for="del">
|
||||
删除图片
|
||||
</label>
|
||||
<input type="url" name="url" class="form-control" id="del" placeholder="请输入图片链接" />
|
||||
</div>
|
||||
<label>格式:<code>https://i1.100024.xyz/i/2021/05/04/10fn9ei.jpg</code></label>
|
||||
<input type="submit" class="btn btn-mini btn-primary" value="删除" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
|
||||
<div class="col-md-4">
|
||||
<form action="../libs/compressing.php" method="post" target="_blank">
|
||||
<div class="form-group">
|
||||
<label for="exampleInputInviteCode1">压缩文件夹内图片(格式:2021/05/10/):</label>
|
||||
<input type="text" class="form-control form-date" placeholder="" name="folder" value="<?php echo date('Y/m/d/'); ?>" readonly="">
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="type" value="Imgcompress" checked="checked"> 使用本地压缩(默认上传已压缩,不需重复压缩)
|
||||
</label>
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="type" value="TinyImg"> 使用TinyImag压缩(需要申请key)
|
||||
</label>
|
||||
</div>
|
||||
<div>
|
||||
<label>
|
||||
* 如果页面长时间没有响应,表示正面正在压缩!
|
||||
</label>
|
||||
<label>
|
||||
两种压缩均为不可逆,并且非常占用硬件资源。
|
||||
</label>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-mini btn-success">开始压缩</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<table class="table table-hover table-bordered table-condensed table-responsive">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>当前可用Token列表:</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
foreach ($tokenList as $value) {
|
||||
echo '<tr><td>' . $value . '</td></tr>';
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
|
||||
<div class="form-group">
|
||||
<label for="exampleInputInviteCode1" style="color:red">删除所选日期文件夹(删除之后无法恢复!):</label>
|
||||
<input type="text" class="form-control form-date" name="delDir" value="<?php echo date('Y/m/d/'); ?>" readonly="">
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-mini btn-danger" onClick="return confirm('确认要删除?\n* 删除文件夹后将无法恢复!');">删除目录</button>
|
||||
</form>
|
||||
</div>
|
||||
</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>
|
||||
// 动态显示要删除的图片
|
||||
var oBtn = document.getElementById('del');
|
||||
var oTi = document.getElementById('title');
|
||||
if ('oninput' in oBtn) {
|
||||
oBtn.addEventListener("input", getWord, false);
|
||||
} else {
|
||||
oBtn.onpropertychange = getWord;
|
||||
}
|
||||
|
||||
function getWord() {
|
||||
var delimgurl = document.getElementById("delimgurl");
|
||||
delimgurl.innerHTML += '<img src="' + oBtn.value + '" width="200" class="img-rounded" /><br />';
|
||||
}
|
||||
|
||||
// 仅选择日期
|
||||
$(".form-date").datetimepicker({
|
||||
weekStart: 1,
|
||||
todayBtn: 1,
|
||||
autoclose: 1,
|
||||
todayHighlight: 1,
|
||||
startView: 2,
|
||||
minView: 2,
|
||||
forceParse: 0,
|
||||
format: "yyyy/mm/dd/"
|
||||
});
|
||||
|
||||
// Title
|
||||
document.title = "管理中心 - <?php echo $config['title']; ?>";
|
||||
</script>
|
||||
|
||||
<?php require_once APP_ROOT . '/libs/footer.php';
|
|
@ -1,38 +0,0 @@
|
|||
<?php
|
||||
echo '<title> - EasyImage2.0</title>';
|
||||
require_once '../../libs/function.php';
|
||||
require_once APP_ROOT . '/libs/header.php';
|
||||
require_once APP_ROOT . '/config/api_key.php';
|
||||
|
||||
// 如果关闭Api上传并且没有登录的情况下关闭测试接口
|
||||
if (!$config['apiStatus'] and !is_online()) {
|
||||
exit('<script>
|
||||
new $.zui.Messager("Api关闭,请登录", {type: "danger" // 定义颜色主题
|
||||
}).show();
|
||||
// 延时2s跳转
|
||||
window.setTimeout("window.location=\'/../libs/login.php \'",2000);
|
||||
</script>');
|
||||
}
|
||||
|
||||
?>
|
||||
<div class="container">
|
||||
</div class="row">
|
||||
<div class="col-md-12">
|
||||
<h4>测试Token:<code><?php echo $tokenList['1']; ?></code></h4>
|
||||
<form action="../index.php" method="post" enctype="multipart/form-data" class="form-inline" target="_blank">
|
||||
<div class="form-group">
|
||||
<input type="file" name="image" accept="image/*" class="form-control" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="text" name="token" placeholder="请输入Token" class="form-control" />
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">上传</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
document.title = "API图片上传测试 - <?php echo $config['title']; ?>";
|
||||
</script>
|
||||
<?php require_once APP_ROOT . '/libs/footer.php';
|
81
api/del.php
81
api/del.php
|
@ -1,81 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* 删除文件页面
|
||||
*/
|
||||
require_once '../libs/header.php';
|
||||
require_once APP_ROOT . '/libs/function.php';
|
||||
echo '<div class="col-md-4 col-md-offset-4">
|
||||
<div id="title" style="margin: 10px;"></div>
|
||||
|
||||
<form class="form-inline" method="get" action="' . $_SERVER['PHP_SELF'] . '" id="form" name="delForm" onSubmit="getStr();">
|
||||
<div class="form-group">
|
||||
<label for="exampleInputInviteCode3">删除图片-格式:</label>
|
||||
<input type="text" class="form-control" id="exampleInputInviteCode3" name="url" placeholder="https://i1.100024.xyz/i/2021/05/04/10fn9ei.jpg">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-danger">删除</button>
|
||||
</form>
|
||||
</div>
|
||||
';
|
||||
if (empty($_REQUEST)) {
|
||||
echo '
|
||||
<script>
|
||||
new $.zui.Messager("没有要删除的图片!", {type: "danger" // 定义颜色主题
|
||||
}).show();
|
||||
// 延时3.5s跳转
|
||||
window.setTimeout("window.location=\'/../ \'",3500);
|
||||
</script>
|
||||
';
|
||||
} elseif (isset($_GET['url'])) {
|
||||
$img = $_GET['url'];
|
||||
echo '
|
||||
<div class="col-md-12">
|
||||
<hr />
|
||||
<div style="text-align:center;"><span class="label">图片属性:'.@getimagesize($img)[0].'px X '.@getimagesize($img)[1].'px</span></div>
|
||||
<a href="' . $img . '" target="_blank"><img src="' . $img . '" alt="简单图床-EasyImage" class="img-thumbnail"></a>
|
||||
</div>';
|
||||
}
|
||||
|
||||
// 解密删除
|
||||
if (isset($_GET['hash'])) {
|
||||
$delHash = $_GET['hash'];
|
||||
$delHash = urlHash($delHash, 1);
|
||||
getDel($delHash, 'hash');
|
||||
}
|
||||
|
||||
// 检查登录后再处理url删除请求
|
||||
if (is_online()) {
|
||||
if (isset($_GET['url'])) {
|
||||
getDel($_GET['url'], 'url');
|
||||
}
|
||||
} else {
|
||||
if (isset($_GET['url'])) {
|
||||
echo '
|
||||
<script>
|
||||
new $.zui.Messager("请登录后再删除", {type: "danger" // 定义颜色主题
|
||||
}).show();
|
||||
// 延时2s跳转
|
||||
window.setTimeout("window.location=\'/../libs/login.php \'",2000);
|
||||
</script>
|
||||
';
|
||||
}
|
||||
}
|
||||
|
||||
require_once APP_ROOT . '/libs/footer.php';
|
||||
?>
|
||||
<script>
|
||||
// 修改网页标题
|
||||
document.title = "删除图片 - <?php echo $config['title']; ?>";
|
||||
|
||||
var oBtn = document.getElementById('del');
|
||||
var oTi = document.getElementById('title');
|
||||
if ('oninput' in oBtn) {
|
||||
oBtn.addEventListener("input", getWord, false);
|
||||
} else {
|
||||
oBtn.onpropertychange = getWord;
|
||||
}
|
||||
|
||||
function getWord() {
|
||||
oTi.innerHTML = '<img src="' + oBtn.value + '" width="200" class="img-rounded" /><br />';
|
||||
}
|
||||
</script>
|
121
api/index.php
121
api/index.php
|
@ -1,121 +0,0 @@
|
|||
<?php
|
||||
require_once __DIR__ . './../libs/function.php';
|
||||
require_once APP_ROOT . '/api/libs/apiFunction.php';
|
||||
require_once APP_ROOT . '/libs/class.upload.php';
|
||||
require_once APP_ROOT . '/libs/WaterMask.php';
|
||||
require_once APP_ROOT . '/config/api_key.php';
|
||||
|
||||
// 检查是否开启api上传
|
||||
if ($config['apiStatus']) {
|
||||
header('Access-Control-Allow-Origin:*');
|
||||
} else {
|
||||
exit('API closed');
|
||||
}
|
||||
|
||||
// 检查api合法性
|
||||
checkToken($_POST['token']);
|
||||
$token = $_POST['token'];
|
||||
|
||||
$handle = new Upload($_FILES['image'], 'zh_CN');
|
||||
|
||||
if ($handle->uploaded) {
|
||||
// 允许上传的mime类型
|
||||
$handle->allowed = array('image/*');
|
||||
// 文件命名
|
||||
$handle->file_new_name_body = imgName() . '_' . getID($token);
|
||||
// 最大上传限制
|
||||
$handle->file_max_sizes = $config['maxSize'];
|
||||
// 最大宽度
|
||||
$handle->image_max_width = $config['maxWidth'];
|
||||
// 最大高度
|
||||
$handle->image_max_height = $config['maxHeight'];
|
||||
// 最小宽度
|
||||
$handle->image_min_width = $config['minWidth'];
|
||||
// 最小高度
|
||||
$handle->image_min_height = $config['minHeight'];
|
||||
// 转换图片为指定格式
|
||||
$handle->image_convert = $config['imgConvert'];
|
||||
|
||||
//等比例缩减图片
|
||||
if ($config['imgRatio']) {
|
||||
$handle->image_resize = true;
|
||||
$handle->image_x = $config['image_x'];
|
||||
$handle->image_y = $config['image_y'];
|
||||
}
|
||||
// 存储图片路径:images/201807/
|
||||
$handle->process('../' . config_path());
|
||||
|
||||
// 设置水印
|
||||
if ($config['watermark'] > 0) {
|
||||
switch ($config['watermark']) {
|
||||
case 1: // 文字水印 过滤gif
|
||||
if (isAnimatedGif($handle->file_src_pathname) === 0) {
|
||||
$arr = [
|
||||
# 水印图片路径(如果不存在将会被当成是字符串水印)
|
||||
'res' => $config['waterText'],
|
||||
# 水印显示位置
|
||||
'pos' => $config['waterPosition'],
|
||||
# 不指定name(会覆盖原图,也就是保存成thumb.jpeg)
|
||||
'name' => $handle->file_dst_pathname,
|
||||
'font' => $config['textFont'],
|
||||
'fontSize' => $config['textSize'],
|
||||
'color' => $config['textColor'],
|
||||
];
|
||||
Imgs::setWater($handle->file_dst_pathname, $arr);
|
||||
}
|
||||
break;
|
||||
case 2: // 图片水印
|
||||
if (isAnimatedGif($handle->file_src_pathname) === 0) {
|
||||
$arr = [
|
||||
# 水印图片路径(如果不存在将会被当成是字符串水印)
|
||||
'res' => $config['waterImg'],
|
||||
# 水印显示位置
|
||||
'pos' => $config['waterPosition'],
|
||||
# 不指定name(会覆盖原图,也就是保存成thumb.jpeg)
|
||||
'name' => $handle->file_dst_pathname,
|
||||
];
|
||||
Imgs::setWater($handle->file_dst_pathname, $arr);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
echo $handle->error;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 图片完整相对路径:/i/2021/05/03/k88e7p.jpg
|
||||
if ($handle->processed) {
|
||||
header('Content-type:text/json');
|
||||
// 上传成功后返回json数据
|
||||
$imageUrl = $config['imgurl'] . config_path() . $handle->file_dst_name;
|
||||
$delUrl = $config['domain'] . '/api/del.php?hash=' . urlHash(config_path() . $handle->file_dst_name, 0);
|
||||
|
||||
$reJson = array(
|
||||
"result" => 'success',
|
||||
"url" => $imageUrl,
|
||||
"del" => $delUrl,
|
||||
);
|
||||
echo json_encode($reJson);
|
||||
$handle->clean();
|
||||
} else {
|
||||
// 上传错误 返回错误信息
|
||||
$reJson = array(
|
||||
"result" => 'failed',
|
||||
"message" => $handle->error,
|
||||
);
|
||||
echo json_encode($reJson, JSON_UNESCAPED_UNICODE);
|
||||
}
|
||||
|
||||
// 压缩图片 后压缩模式,不影响前台输出速度
|
||||
if (!isAnimatedGif($handle->file_dst_pathname))
|
||||
if ($config['compress']) {
|
||||
require '../libs/compress/Imagick/class.Imgcompress.php';
|
||||
$img = new Imgcompress($handle->file_dst_pathname, 1);
|
||||
$img->compressImg($handle->file_dst_pathname);
|
||||
// 释放
|
||||
ob_flush();
|
||||
flush();
|
||||
}
|
||||
|
||||
unset($handle);
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
<?php
|
||||
|
||||
require_once './../config/api_key.php';
|
||||
require_once './../config/config.php';
|
||||
|
||||
// Token 生成
|
||||
function privateToken($length = 32)
|
||||
{
|
||||
$output = '';
|
||||
for ($a = 0; $a < $length; $a++) {
|
||||
$output .= chr(mt_rand(65, 122)); //生成php随机数
|
||||
}
|
||||
return md5($output);
|
||||
}
|
||||
|
||||
// 检查Token
|
||||
function checkToken($token)
|
||||
{
|
||||
global $tokenList;
|
||||
$token = preg_replace('/[\W]/', '', $token); // 过滤非字母数字,删除空格
|
||||
|
||||
if (in_array($token, $tokenList)) {
|
||||
return True;
|
||||
} else {
|
||||
exit('此Token不存在:' . $token);
|
||||
}
|
||||
}
|
||||
|
||||
// 通过Token查找用户ID
|
||||
function getID($token)
|
||||
{
|
||||
global $tokenList;
|
||||
$token = preg_replace('/[\W]/', '', $token); // 过滤非字母数字,删除空格
|
||||
$key = array_search($token, $tokenList);
|
||||
if ($key >= 0) {
|
||||
return $key;
|
||||
} else {
|
||||
return ('没有这个用户ID');
|
||||
}
|
||||
};
|
||||
|
||||
// 通过ID查找用户Token
|
||||
function getIDToken($id)
|
||||
{
|
||||
global $tokenList;
|
||||
$id = preg_replace('/[\W]/', '', $id); // 过滤非字母数字,删除空格
|
||||
foreach ($tokenList as $key => $value) {
|
||||
if ($key == $id) {
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
};
|
|
@ -98,7 +98,7 @@ $config = array(
|
|||
// 图片水印路径 支持GIF,JPG,BMP,PNG和PNG alpha
|
||||
'waterImg' => 'public/images/watermark.png',
|
||||
// 允许上传的图片扩展名
|
||||
'extensions' => "'bmp,jpg,png,tif,gif,pcx,tga,svg,webp,jpeg,tga,svg,ico'",
|
||||
'extensions' => "'bmp,jpg,png,tif,gif,pcx,tga,svg,webp,jpeg,tga,svg,psd,ico'",
|
||||
// 轻微有损压缩图片 开启:true 关闭:false * 此压缩有可能使图片变大!特别是小图片 也有一定概率改变图片方向
|
||||
'compress' => true,
|
||||
// 转换图片为指定格式 可选:''|'png'|'jpeg'|'gif'|'bmp';默认值:''
|
||||
|
@ -145,7 +145,7 @@ $config = array(
|
|||
'listNumber' => 20,
|
||||
// 上传框底部自定义信息,仅支持html格式 可以放置统计代码 下面是举例:
|
||||
'customize' => '
|
||||
<!-- 统计代码-->
|
||||
<!-- 统计代码
|
||||
<script>
|
||||
var _hmt = _hmt || [];
|
||||
(function() {
|
||||
|
@ -155,6 +155,7 @@ $config = array(
|
|||
s.parentNode.insertBefore(hm, s);
|
||||
})();
|
||||
</script>
|
||||
-->
|
||||
<!--打赏
|
||||
<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>
|
||||
-->
|
||||
|
|
BIN
favicon.ico
BIN
favicon.ico
Binary file not shown.
Before Width: | Height: | Size: 4.2 KiB |
|
@ -1757,7 +1757,7 @@ class Upload {
|
|||
$this->file_max_size = $this->getsize($this->file_max_size_raw);
|
||||
|
||||
$this->image_resize = false; // resize the image
|
||||
$this->image_convert = ''; // convert. values :''; 'png'; 'jpeg'; 'gif'; 'bmp'
|
||||
$this->image_convert = ''; // convert. values :''; 'png'; 'jpeg'; 'gif'; 'bmp'; 'webp'
|
||||
|
||||
$this->image_x = 150;
|
||||
$this->image_y = 150;
|
||||
|
@ -2093,7 +2093,7 @@ class Upload {
|
|||
*/
|
||||
function upload($file, $lang = 'en_GB') {
|
||||
|
||||
$this->version = '03/08/2019';
|
||||
$this->version = '05/10/2021';
|
||||
|
||||
$this->file_src_name = '';
|
||||
$this->file_src_name_body = '';
|
||||
|
@ -3586,9 +3586,12 @@ class Upload {
|
|||
if (empty($this->image_convert)) {
|
||||
$this->log .= '- setting destination file type to ' . $this->image_src_type . '<br />';
|
||||
$this->image_convert = $this->image_src_type;
|
||||
} else {
|
||||
$this->log .= '- requested destination file type is ' . $this->image_convert . '<br />';
|
||||
}
|
||||
|
||||
if (!in_array($this->image_convert, $this->image_supported)) {
|
||||
$this->log .= '- destination file type ' . $this->image_convert . ' is not supported; switching to jpg<br />';
|
||||
$this->image_convert = 'jpg';
|
||||
}
|
||||
|
||||
|
|
|
@ -48,8 +48,26 @@
|
|||
});
|
||||
|
||||
// NProgress
|
||||
$("body").show();
|
||||
$(".version").text(NProgress.version);
|
||||
NProgress.start();
|
||||
NProgress.done();
|
||||
setTimeout(function() {
|
||||
NProgress.done();
|
||||
$(".fade").removeClass("out");
|
||||
}, 1000);
|
||||
|
||||
$("#b-0").click(function() {
|
||||
NProgress.start();
|
||||
});
|
||||
$("#b-40").click(function() {
|
||||
NProgress.set(0.4);
|
||||
});
|
||||
$("#b-inc").click(function() {
|
||||
NProgress.inc();
|
||||
});
|
||||
$("#b-100").click(function() {
|
||||
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 $config['customize']; ?></p>
|
||||
|
|
|
@ -1,86 +0,0 @@
|
|||
<?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,0 +1,87 @@
|
|||
<?php
|
||||
// +------------------------------------------------------------------------+
|
||||
// | class.upload.zh_TW.php |
|
||||
// +------------------------------------------------------------------------+
|
||||
// | Copyright (c) Yang Chih-Wen 2009. All rights reserved. |
|
||||
// | Version 0.28 |
|
||||
// | Last modified 15/08/2009 |
|
||||
// | Email chihwen.yang@gmail.com |
|
||||
// | Web http://www.doubleservice.com/ |
|
||||
// +------------------------------------------------------------------------+
|
||||
// | 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 Traditional Chinese translation
|
||||
*
|
||||
* @version 0.28
|
||||
* @author Yang Chih-Wen (chihwen.yang@gmail.com)
|
||||
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||
* @copyright Yang Chih-Wen
|
||||
* @package cmf
|
||||
* @subpackage external
|
||||
*/
|
||||
|
||||
$translation = array();
|
||||
$translation['file_error'] = '檔案錯誤,請重試。';
|
||||
$translation['local_file_missing'] = '本地端的檔案不存在。';
|
||||
$translation['local_file_not_readable'] = '本地端的檔案不可讀取。';
|
||||
$translation['uploaded_too_big_ini'] = '檔案上傳出錯 (上傳的檔案超過了 php.ini 中 upload_max_filesize 指定的大小)。';
|
||||
$translation['uploaded_too_big_html'] = '檔案上傳出錯 (上傳的檔案超過了 HTML 表單中 MAX_FILE_SIZE 指定的大小)。';
|
||||
$translation['uploaded_partial'] = '檔案上傳出錯 (只有部份的檔案被上傳)。';
|
||||
$translation['uploaded_missing'] = '檔案上傳出錯 (沒有檔案被上傳)。';
|
||||
$translation['uploaded_no_tmp_dir'] = '檔案上傳出錯 (找不到暫存目錄)。';
|
||||
$translation['uploaded_cant_write'] = '檔案上傳出錯 (檔案寫入失敗)。';
|
||||
$translation['uploaded_err_extension'] = '檔案上傳出錯 (檔案上傳被 extension 中斷)。';
|
||||
$translation['uploaded_unknown'] = '檔案上傳出錯 (未知的錯誤)。';
|
||||
$translation['try_again'] = '檔案上傳出錯,請重試。';
|
||||
$translation['file_too_big'] = '檔案太大了。';
|
||||
$translation['no_mime'] = '未知的 MIME Type 檔案類型。';
|
||||
$translation['incorrect_file'] = '不正確的 MIME Type 檔案類型。';
|
||||
$translation['image_too_wide'] = '圖片寬度太大。';
|
||||
$translation['image_too_narrow'] = '圖片寬度太小。';
|
||||
$translation['image_too_high'] = '圖片高度太大。';
|
||||
$translation['image_too_short'] = '圖片高度太小。';
|
||||
$translation['ratio_too_high'] = '圖片寬高比率太大 (圖片寬度太大)。';
|
||||
$translation['ratio_too_low'] = '圖片寬高比率太小 (圖片高度太大)。';
|
||||
$translation['too_many_pixels'] = '圖片像素太多。';
|
||||
$translation['not_enough_pixels'] = '圖片像素太少。';
|
||||
$translation['file_not_uploaded'] = '檔案未上傳,無法繼續進行處理。';
|
||||
$translation['already_exists'] = '%s 已經存在,請更改檔名。';
|
||||
$translation['temp_file_missing'] = '暫存的原始檔案不正確,無法繼續進行處理。';
|
||||
$translation['source_missing'] = '已上傳的原始檔案不正確,無法繼續進行處理。';
|
||||
$translation['destination_dir'] = '無法創建目標目錄,無法繼續進行處理。';
|
||||
$translation['destination_dir_missing'] = '目標目錄不存在,無法繼續進行處理。';
|
||||
$translation['destination_path_not_dir'] = '目標路徑不是一個有效的目錄,無法繼續進行處理。';
|
||||
$translation['destination_dir_write'] = '目標目錄不能設定為可寫入,無法繼續進行處理。';
|
||||
$translation['destination_path_write'] = '目錄路徑不可寫入,無法繼續進行處理。';
|
||||
$translation['temp_file'] = '不能創建暫存檔案,無法繼續進行處理。';
|
||||
$translation['source_not_readable'] = '原始檔案不可讀取,無法繼續進行處理。';
|
||||
$translation['no_create_support'] = '不支援 %s 創建功能。';
|
||||
$translation['create_error'] = '從原始檔案創建 %s 圖片過程中出錯。';
|
||||
$translation['source_invalid'] = '無法讀取原始圖片,請確認是否為正確的圖片檔?';
|
||||
$translation['gd_missing'] = '無法使用 GD 函式庫。';
|
||||
$translation['watermark_no_create_support'] = '不支援 %s 創建功能,無法讀取浮水印。';
|
||||
$translation['watermark_create_error'] = '不支援 %s 讀取功能,無法創建浮水印。';
|
||||
$translation['watermark_invalid'] = '未知的圖片格式,無法讀取浮水印。';
|
||||
$translation['file_create'] = '不支援 %s 創建功能。';
|
||||
$translation['no_conversion_type'] = '未定義的轉換類型。';
|
||||
$translation['copy_failed'] = '在伺服端複製檔案時出錯,copy() 操作失敗。';
|
||||
$translation['reading_failed'] = '讀檔過程中出錯。';
|
||||
?>
|
|
@ -1,2 +1,2 @@
|
|||
!function(n){"use strict";function d(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function f(n,t,r,e,o,u){return d((u=d(d(t,n),d(e,u)))<<o|u>>>32-o,r)}function l(n,t,r,e,o,u,c){return f(t&r|~t&e,n,t,o,u,c)}function g(n,t,r,e,o,u,c){return f(t&e|r&~e,n,t,o,u,c)}function v(n,t,r,e,o,u,c){return f(t^r^e,n,t,o,u,c)}function m(n,t,r,e,o,u,c){return f(r^(t|~e),n,t,o,u,c)}function c(n,t){var r,e,o,u;n[t>>5]|=128<<t%32,n[14+(t+64>>>9<<4)]=t;for(var c=1732584193,f=-271733879,i=-1732584194,a=271733878,h=0;h<n.length;h+=16)c=l(r=c,e=f,o=i,u=a,n[h],7,-680876936),a=l(a,c,f,i,n[h+1],12,-389564586),i=l(i,a,c,f,n[h+2],17,606105819),f=l(f,i,a,c,n[h+3],22,-1044525330),c=l(c,f,i,a,n[h+4],7,-176418897),a=l(a,c,f,i,n[h+5],12,1200080426),i=l(i,a,c,f,n[h+6],17,-1473231341),f=l(f,i,a,c,n[h+7],22,-45705983),c=l(c,f,i,a,n[h+8],7,1770035416),a=l(a,c,f,i,n[h+9],12,-1958414417),i=l(i,a,c,f,n[h+10],17,-42063),f=l(f,i,a,c,n[h+11],22,-1990404162),c=l(c,f,i,a,n[h+12],7,1804603682),a=l(a,c,f,i,n[h+13],12,-40341101),i=l(i,a,c,f,n[h+14],17,-1502002290),c=g(c,f=l(f,i,a,c,n[h+15],22,1236535329),i,a,n[h+1],5,-165796510),a=g(a,c,f,i,n[h+6],9,-1069501632),i=g(i,a,c,f,n[h+11],14,643717713),f=g(f,i,a,c,n[h],20,-373897302),c=g(c,f,i,a,n[h+5],5,-701558691),a=g(a,c,f,i,n[h+10],9,38016083),i=g(i,a,c,f,n[h+15],14,-660478335),f=g(f,i,a,c,n[h+4],20,-405537848),c=g(c,f,i,a,n[h+9],5,568446438),a=g(a,c,f,i,n[h+14],9,-1019803690),i=g(i,a,c,f,n[h+3],14,-187363961),f=g(f,i,a,c,n[h+8],20,1163531501),c=g(c,f,i,a,n[h+13],5,-1444681467),a=g(a,c,f,i,n[h+2],9,-51403784),i=g(i,a,c,f,n[h+7],14,1735328473),c=v(c,f=g(f,i,a,c,n[h+12],20,-1926607734),i,a,n[h+5],4,-378558),a=v(a,c,f,i,n[h+8],11,-2022574463),i=v(i,a,c,f,n[h+11],16,1839030562),f=v(f,i,a,c,n[h+14],23,-35309556),c=v(c,f,i,a,n[h+1],4,-1530992060),a=v(a,c,f,i,n[h+4],11,1272893353),i=v(i,a,c,f,n[h+7],16,-155497632),f=v(f,i,a,c,n[h+10],23,-1094730640),c=v(c,f,i,a,n[h+13],4,681279174),a=v(a,c,f,i,n[h],11,-358537222),i=v(i,a,c,f,n[h+3],16,-722521979),f=v(f,i,a,c,n[h+6],23,76029189),c=v(c,f,i,a,n[h+9],4,-640364487),a=v(a,c,f,i,n[h+12],11,-421815835),i=v(i,a,c,f,n[h+15],16,530742520),c=m(c,f=v(f,i,a,c,n[h+2],23,-995338651),i,a,n[h],6,-198630844),a=m(a,c,f,i,n[h+7],10,1126891415),i=m(i,a,c,f,n[h+14],15,-1416354905),f=m(f,i,a,c,n[h+5],21,-57434055),c=m(c,f,i,a,n[h+12],6,1700485571),a=m(a,c,f,i,n[h+3],10,-1894986606),i=m(i,a,c,f,n[h+10],15,-1051523),f=m(f,i,a,c,n[h+1],21,-2054922799),c=m(c,f,i,a,n[h+8],6,1873313359),a=m(a,c,f,i,n[h+15],10,-30611744),i=m(i,a,c,f,n[h+6],15,-1560198380),f=m(f,i,a,c,n[h+13],21,1309151649),c=m(c,f,i,a,n[h+4],6,-145523070),a=m(a,c,f,i,n[h+11],10,-1120210379),i=m(i,a,c,f,n[h+2],15,718787259),f=m(f,i,a,c,n[h+9],21,-343485551),c=d(c,r),f=d(f,e),i=d(i,o),a=d(a,u);return[c,f,i,a]}function i(n){for(var t="",r=32*n.length,e=0;e<r;e+=8)t+=String.fromCharCode(n[e>>5]>>>e%32&255);return t}function a(n){var t=[];for(t[(n.length>>2)-1]=void 0,e=0;e<t.length;e+=1)t[e]=0;for(var r=8*n.length,e=0;e<r;e+=8)t[e>>5]|=(255&n.charCodeAt(e/8))<<e%32;return t}function e(n){for(var t,r="0123456789abcdef",e="",o=0;o<n.length;o+=1)t=n.charCodeAt(o),e+=r.charAt(t>>>4&15)+r.charAt(15&t);return e}function r(n){return unescape(encodeURIComponent(n))}function o(n){return i(c(a(n=r(n)),8*n.length))}function u(n,t){return function(n,t){var r,e=a(n),o=[],u=[];for(o[15]=u[15]=void 0,16<e.length&&(e=c(e,8*n.length)),r=0;r<16;r+=1)o[r]=909522486^e[r],u[r]=1549556828^e[r];return t=c(o.concat(a(t)),512+8*t.length),i(c(u.concat(t),640))}(r(n),r(t))}function t(n,t,r){return t?r?u(t,n):e(u(t,n)):r?o(n):e(o(n))}"function"==typeof define&&define.amd?define(function(){return t}):"object"==typeof module&&module.exports?module.exports=t:n.md5=t}(this);
|
||||
!function(n){"use strict";function d(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function f(n,t,r,e,o,u){return d((c=d(d(t,n),d(e,u)))<<(f=o)|c>>>32-f,r);var c,f}function l(n,t,r,e,o,u,c){return f(t&r|~t&e,n,t,o,u,c)}function v(n,t,r,e,o,u,c){return f(t&e|r&~e,n,t,o,u,c)}function g(n,t,r,e,o,u,c){return f(t^r^e,n,t,o,u,c)}function m(n,t,r,e,o,u,c){return f(r^(t|~e),n,t,o,u,c)}function i(n,t){var r,e,o,u;n[t>>5]|=128<<t%32,n[14+(t+64>>>9<<4)]=t;for(var c=1732584193,f=-271733879,i=-1732584194,a=271733878,h=0;h<n.length;h+=16)c=l(r=c,e=f,o=i,u=a,n[h],7,-680876936),a=l(a,c,f,i,n[h+1],12,-389564586),i=l(i,a,c,f,n[h+2],17,606105819),f=l(f,i,a,c,n[h+3],22,-1044525330),c=l(c,f,i,a,n[h+4],7,-176418897),a=l(a,c,f,i,n[h+5],12,1200080426),i=l(i,a,c,f,n[h+6],17,-1473231341),f=l(f,i,a,c,n[h+7],22,-45705983),c=l(c,f,i,a,n[h+8],7,1770035416),a=l(a,c,f,i,n[h+9],12,-1958414417),i=l(i,a,c,f,n[h+10],17,-42063),f=l(f,i,a,c,n[h+11],22,-1990404162),c=l(c,f,i,a,n[h+12],7,1804603682),a=l(a,c,f,i,n[h+13],12,-40341101),i=l(i,a,c,f,n[h+14],17,-1502002290),c=v(c,f=l(f,i,a,c,n[h+15],22,1236535329),i,a,n[h+1],5,-165796510),a=v(a,c,f,i,n[h+6],9,-1069501632),i=v(i,a,c,f,n[h+11],14,643717713),f=v(f,i,a,c,n[h],20,-373897302),c=v(c,f,i,a,n[h+5],5,-701558691),a=v(a,c,f,i,n[h+10],9,38016083),i=v(i,a,c,f,n[h+15],14,-660478335),f=v(f,i,a,c,n[h+4],20,-405537848),c=v(c,f,i,a,n[h+9],5,568446438),a=v(a,c,f,i,n[h+14],9,-1019803690),i=v(i,a,c,f,n[h+3],14,-187363961),f=v(f,i,a,c,n[h+8],20,1163531501),c=v(c,f,i,a,n[h+13],5,-1444681467),a=v(a,c,f,i,n[h+2],9,-51403784),i=v(i,a,c,f,n[h+7],14,1735328473),c=g(c,f=v(f,i,a,c,n[h+12],20,-1926607734),i,a,n[h+5],4,-378558),a=g(a,c,f,i,n[h+8],11,-2022574463),i=g(i,a,c,f,n[h+11],16,1839030562),f=g(f,i,a,c,n[h+14],23,-35309556),c=g(c,f,i,a,n[h+1],4,-1530992060),a=g(a,c,f,i,n[h+4],11,1272893353),i=g(i,a,c,f,n[h+7],16,-155497632),f=g(f,i,a,c,n[h+10],23,-1094730640),c=g(c,f,i,a,n[h+13],4,681279174),a=g(a,c,f,i,n[h],11,-358537222),i=g(i,a,c,f,n[h+3],16,-722521979),f=g(f,i,a,c,n[h+6],23,76029189),c=g(c,f,i,a,n[h+9],4,-640364487),a=g(a,c,f,i,n[h+12],11,-421815835),i=g(i,a,c,f,n[h+15],16,530742520),c=m(c,f=g(f,i,a,c,n[h+2],23,-995338651),i,a,n[h],6,-198630844),a=m(a,c,f,i,n[h+7],10,1126891415),i=m(i,a,c,f,n[h+14],15,-1416354905),f=m(f,i,a,c,n[h+5],21,-57434055),c=m(c,f,i,a,n[h+12],6,1700485571),a=m(a,c,f,i,n[h+3],10,-1894986606),i=m(i,a,c,f,n[h+10],15,-1051523),f=m(f,i,a,c,n[h+1],21,-2054922799),c=m(c,f,i,a,n[h+8],6,1873313359),a=m(a,c,f,i,n[h+15],10,-30611744),i=m(i,a,c,f,n[h+6],15,-1560198380),f=m(f,i,a,c,n[h+13],21,1309151649),c=m(c,f,i,a,n[h+4],6,-145523070),a=m(a,c,f,i,n[h+11],10,-1120210379),i=m(i,a,c,f,n[h+2],15,718787259),f=m(f,i,a,c,n[h+9],21,-343485551),c=d(c,r),f=d(f,e),i=d(i,o),a=d(a,u);return[c,f,i,a]}function a(n){for(var t="",r=32*n.length,e=0;e<r;e+=8)t+=String.fromCharCode(n[e>>5]>>>e%32&255);return t}function h(n){var t=[];for(t[(n.length>>2)-1]=void 0,e=0;e<t.length;e+=1)t[e]=0;for(var r=8*n.length,e=0;e<r;e+=8)t[e>>5]|=(255&n.charCodeAt(e/8))<<e%32;return t}function e(n){for(var t,r="0123456789abcdef",e="",o=0;o<n.length;o+=1)t=n.charCodeAt(o),e+=r.charAt(t>>>4&15)+r.charAt(15&t);return e}function r(n){return unescape(encodeURIComponent(n))}function o(n){return a(i(h(t=r(n)),8*t.length));var t}function u(n,t){return function(n,t){var r,e,o=h(n),u=[],c=[];for(u[15]=c[15]=void 0,16<o.length&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(h(t)),512+8*t.length),a(i(c.concat(e),640))}(r(n),r(t))}function t(n,t,r){return t?r?u(t,n):e(u(t,n)):r?o(n):e(o(n))}"function"==typeof define&&define.amd?define(function(){return t}):"object"==typeof module&&module.exports?module.exports=t:n.md5=t}(this);
|
||||
//# sourceMappingURL=md5.min.js.map
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
|||
#nprogress{pointer-events:none}#nprogress .bar{background:#de1c31;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translate(0,-4px);-ms-transform:rotate(3deg) translate(0,-4px);transform:rotate(3deg) translate(0,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
|
||||
#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translate(0,-4px);-ms-transform:rotate(3deg) translate(0,-4px);transform:rotate(3deg) translate(0,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
|
|
@ -1,4 +0,0 @@
|
|||
# robots.txt
|
||||
User-agent: *
|
||||
Disallow:
|
||||
Disallow: /config/
|
Loading…
Reference in New Issue