一个高效、简洁的图片上传系统,支持多种存储方式,包括本地存储、阿里云OSS、S3存储、又拍云存储,另可通过挂载扩展更多存储方式
特性
- 🚀 高效压缩 - 集成强大的图片压缩功能,支持自定义压缩率,提升图片加载速度
- 🌐 多种格式 - 支持多种图片格式,包括 JPEG、PNG、GIF、WebP、SVG 等,支持输出原格式、WebP、AVIF格式
- 💾 多种存储 - 支持本地存储、阿里云OSS、S3存储、又拍云存储,另可通过挂载扩展更多存储方式
- 🎨 优雅界面 - 简洁美观的前端界面,支持拖拽上传、粘贴上传等多种上传方式
- 📊 便捷管理 - 瀑布流后台布局,支持图片灯箱预览和AJAX无感刷新

安装说明
- 下载最新版本源码
- 上传到网站根目录
- 访问网站,根据向导完成安装
. 伪静态配置
添加以下重写规则到你的 Nginx 配置或伪静态配置中:
location / {
if (!-e $request_filename) {
rewrite ^/api/v1/upload$ /api.php last;
}
}上传限制
编辑config/validate.php文件。同步修改static/js/script.js的头部内容
<?php
// 设置参数
$maxUploadsPerDay = 50; // 每天最多上传50次
$maxFileSize = 5 * 1024 * 1024; // 文件大小限制 5MB 修改这里同步修改 script.js
function isUploadAllowed($maxUploadsPerDay) {
$cookieName = 'upload_count';
$currentDate = date('Y-m-d');
if (isset($_COOKIE[$cookieName])) {
$uploadCounts = json_decode($_COOKIE[$cookieName], true);
if ($uploadCounts['date'] === $currentDate) {
if ($uploadCounts['count'] >= $maxUploadsPerDay) {
return '上传次数过多,请明天再试';
}
$uploadCounts['count']++;
} else {
$uploadCounts = [
'date' => $currentDate,
'count' => 1
];
}
} else {
$uploadCounts = [
'date' => $currentDate,
'count' => 1
];
}
// 设置 Cookie,过期时间为一天
setcookie($cookieName, json_encode($uploadCounts), time() + 86400, "/");
return true;
}
$uploadCheck = isUploadAllowed($maxUploadsPerDay);
if ($uploadCheck !== true) {
echo json_encode(['error' => $uploadCheck]);
exit();
}
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['image'])) {
$file = $_FILES['image'];
if ($file['size'] > $maxFileSize) {
$maxFileSizeMB = $maxFileSize / (1024 * 1024);
echo json_encode(['error' => '文件大小超过限制,最大允许 ' . $maxFileSizeMB . 'MB']);
exit();
}
echo json_encode(['success' => '文件上传成功']);
} else {
echo json_encode(['error' => '无效的请求']);
}
?>资源下载
付费下载
小额支持,帮助站长分担服务器成本,让优质资源持续更新~
🔒
发表评论