PixPro一个高效、简洁的图片图床上传系统源码

一个高效、简洁的图片上传系统,支持多种存储方式,包括本地存储、阿里云OSS、S3存储、又拍云存储,另可通过挂载扩展更多存储方式

特性

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


安装说明

  1. 下载最新版本源码
  2. 上传到网站根目录
  3. 访问网站,根据向导完成安装


. 伪静态配置

添加以下重写规则到你的 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' => '无效的请求']);
}
?>



原创文章,作者:小玖云博客,如若转载,请注明出处:https://xahcsmyxgs.top/?post=45

0
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025-11-20 00:50
下一篇 2025-11-20 01:10

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注