介绍:
图床网站源码是一款专为个人需求设计的高效图床解决方案,集成了强大的图片压缩功能与优雅的前台后台管理界面。
项目结构精简高效,提供自定义图片压缩率与尺寸设置,有效降低存储与带宽成本。
支持上传JPEG、PNG、GIF格式图片并转换为WEBP格式,支持上传SVG、WEBP图片。
支持本地储存,OSS储存,S3存储。可通过把储存桶挂载到本地的方式解锁更多储存方式。
简洁美观的前端,支持点击、拖拽、粘贴、URL、批量上传。
瀑布流管理后台,便捷管理图片,支持图片灯箱、AJAX无加载刷新。
支持自定义压缩率,默认60,可自定义修改。支持修改每日上传限制,单次上传限制
本项目由几个简单的文件组成。采用简单高效的方式进行图片压缩,支持自定义压缩率和尺寸。
帮助大家减少图片储存、流量等方面的支出。
如果需要更换存储策略,需安装后修改config.ini文件
源码安装教程
首先下载源码ZIP,将文件上传到网站根目录,访问网址 ,填写相关信息,即可完成安装。
运行环境:推荐PHP 7.2 + MySQL >= 5.6
本程序依赖PHP的 Fileinfo 、 Imagick 拓展,需要自行安装。依赖 pcntl 扩展(宝塔PHP默认已安装)
要求 pcntl_signal 和 pcntl_alarm 函数可用(需主动解除禁用)。
配置信息安全
设置如下 nginx 规则
1
2
3
|
location ~* /config\.ini$ { deny all; } |
上传限制
编辑 config/validate.php 文件。同步修改static/js/script.js的头部内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
<?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 目录名即可
暂无评论内容