PixPro 图床源码,非常强大的压缩率
一款专为个人需求设计的高效图床解决方案,集成了强大的图片压缩功能与优雅的前台后台管理界面。 项目结构精简高效,提供自定义图片压缩率与尺寸设置,有效降低存储与带宽成本。 支持上传JPEG、PNG、GIF格式图片并转换为WEBP格式,支持上传SVG、WEBP图片。 支持本地储存,OSS储存,S3存储。可通过把储存桶挂载到本地的方式解锁更多储存方式。 简洁美观的前端,支持点击、拖拽、粘贴、URL、批量上传。 瀑布流管理后台,便捷管理图片,支持图片灯箱、AJAX无加载刷新。 支持自定义压缩率,默认60,可自定义修改。支持修改每日上传限制,单次上传限制 运行环境
推荐PHP 8.1 + MySQL >= 5.7 本程序依赖PHP的 Fileinfo 、 Imagick 拓展,需要自行安装。依赖 pcntl 扩展(宝塔PHP默认已安装) 要求 pcntl_signal 和 pcntl_alarm 函数可用(需主动解除禁用)。 配置信息安全
设置如下 nginx 规则 - location ~* /config\.ini$ {
- deny all;
- }
复制代码 上传限制
编辑 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' => '无效的请求']);
- }
- ?>
复制代码 修改后台地址
直接修改 admin 目录名即可
PixPro 图床源码,非常强大的压缩率
游客,本帖隐藏的内容需要积分高于 2 才可浏览,您当前积分为 0
提取码下载:
|