# imgurl-pro **Repository Path**: web/imgurl-pro ## Basic Information - **Project Name**: imgurl-pro - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-30 - **Last Updated**: 2026-09-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ImgURL Pro > 简单、纯粹的图床程序,支持 SQLite / MySQL,基于 CodeIgniter 3。 ## 功能特性 | 功能 | 说明 | |------|------| | 多方式上传 | 拖拽上传、多图上传、Ctrl+V 粘贴上传、URL 上传、API 上传 | | 自动缩略图 | 上传后自动生成缩略图(290×175) | | 图片压缩 | 集成 TinyPNG 在线压缩,支持单张/批量 | | 图片鉴黄 | 集成 ModerateContent API | | 浏览统计 | 自动记录每张图片的浏览次数 | | 探索发现 | 游客可浏览公开的图片,支持按类型/排序筛选 | | 后台管理 | 管理员登录后可管理图片、用户、站点配置 | | 访客限制 | 可限制访客单位时间内的上传数量(默认每天 50 张) | | API Key 认证 | 生成 API Key,请求携带可跳过访客限制,适合第三方集成 | | 多数据库 | 通过 `.env` 切换 **SQLite** 或 **MySQL** | | 动态表前缀 | 支持自定义数据库表前缀,通过 `.env` 配置 | | Docker 支持 | 提供 Dockerfile 和 docker-compose.yml | ## 环境要求 | 组件 | 要求 | |------|------| | PHP | >= 7.4(兼容 5.6+) | | 扩展 | PDO、PDO_SQLite / PDO_MySQL、GD2、fileinfo、curl、mbstring | | 服务器 | Nginx / Apache / IIS | ## 快速安装 ### 方式一:浏览器向导 1. 将项目放入 Web 根目录 2. 浏览器访问 `http://你的域名/install/` 3. 按向导选择数据库类型、填写配置,点击安装 ### 方式二:Docker ```bash docker-compose up -d # 浏览器访问 http://localhost:8080/install/ ``` ### 方式三:手动配置 .env ```env # 数据库类型: sqlite 或 mysql DB_TYPE=sqlite # SQLite 配置 DB_SQLITE_PATH=data/imgurl.db3 # MySQL 配置(DB_TYPE=mysql 时生效) DB_MYSQL_HOST=localhost DB_MYSQL_PORT=3306 DB_MYSQL_DATABASE=imgurl DB_MYSQL_USERNAME=root DB_MYSQL_PASSWORD= # 通用配置 DB_PREFIX=img_ DB_CHARSET=utf8 ``` 然后访问 `/install/` 完成初始化。 ## 目录结构 ``` imgurl-pro/ ├── application/ # CodeIgniter 应用目录 │ ├── config/ # 配置文件(database.php、db_schema.php 等) │ ├── controllers/ # 控制器(Home、Upload、Manage 等) │ ├── models/ # 数据模型(Query、Insert、Update、Delete) │ ├── libraries/ # 自定义类库(Db_env、Image、Basic) │ ├── helpers/ # 辅助函数 │ └── views/ # 视图模板 ├── system/ # CodeIgniter 核心 ├── data/ # 运行时数据(SQLite 数据库、临时文件) ├── imgs/ # 上传图片存储目录 ├── static/ # 静态资源(CSS、JS、字体) ├── doc/ # 文档 │ ├── README.md # 原文档 │ └── api.md # API 接口文档 ├── .env # 数据库配置 ├── index.php # 入口文件 └── Dockerfile ``` ## 数据库表结构 | 表名(默认前缀 img_) | 说明 | |----------------------|------| | `storage` | 存储引擎配置 | | `images` | 图片主记录(路径、上传者、时间等) | | `imginfo` | 图片详细信息(尺寸、MIME、浏览量等) | | `options` | 系统配置(站点信息、用户账号等) | ## 默认账号 | 账号 | 密码 | |------|------| | admin | admin | > ⚠️ 首次安装后请立即修改默认密码! ## API Key 认证 安装完成后系统会自动生成 32 位随机 API Key,存储在 `options` 表中。 **获取 API Key** ```sql SELECT "values" FROM img_options WHERE name = 'apikey'; ``` **使用方式(三选一)** ```bash # 方式一:HTTP Header(推荐) curl -X POST "http://你的域名/api/upload/json" \ -H "X-API-Key: 你的APIKey" \ -F "file=@photo.jpg" # 方式二:Authorization Bearer curl -X POST "http://你的域名/api/upload/json" \ -H "Authorization: Bearer 你的APIKey" \ -F "file=@photo.jpg" # 方式三:URL 参数 curl -X POST "http://你的域名/api/upload/json?key=你的APIKey" \ -F "file=@photo.jpg" ``` 携带正确 API Key 后,上传请求将视为管理员身份,**跳过访客上传数量限制**。 ## 技术栈 - **后端框架**:CodeIgniter 3 - **数据库**:SQLite 3 / MySQL 5.7+ - **前端 UI**:LayUI + jQuery + FontAwesome - **图片处理**:GD2 / ImageMagick - **在线服务**:TinyPNG(压缩)、ModerateContent(鉴黄) ## 鸣谢 - [CodeIgniter](https://github.com/bcit-ci/CodeIgniter) — PHP 框架 - [LayUI](https://github.com/sentsin/layui) — UI 组件库 - [Parsedown](https://github.com/erusev/parsedown) — Markdown 解析 - [clipBoard.js](https://github.com/baixuexiyang/clipBoard.js) — 剪贴板 - [TinyPNG](https://tinypng.com/) — 图片压缩 - [ModerateContent](https://www.moderatecontent.com/) — 图片鉴黄 ## License MIT