一个高效、简洁的图片上传系统,支持多种存储方式,包括本地存储、阿里云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' => '无效的请求']); } ?>
文章评论 (0)
发表评论