一个基于PHP的文件托管系统,使用WebDAV作为后端存储,支持多账号配置、文件上传、在线预览、管理界面等功能。
- 🚀 文件上传:支持拖拽上传、进度显示、多文件批量上传
- 📁 WebDAV存储:使用WebDAV作为后端存储,不占用本地空间
- 🔗 链接生成:自动生成下载链接和直链
- 👁️ 在线预览:支持图片、文本、PDF等文件在线预览
- 📱 响应式设计:支持桌面和移动设备
- ⚙️ 系统配置:可视化配置应用参数
- 🗄️ WebDAV管理:添加、删除、测试WebDAV存储
- 📊 日志监控:实时查看系统日志和操作记录
- 🔐 安全认证:管理员密码保护
- 🔄 多WebDAV支持:支持配置多个WebDAV存储账号
- 🛡️ 安全防护:文件类型验证、大小限制、恶意代码检测
- 📈 API支持:RESTful API,支持curl命令行上传
- ⚡ 性能优化:智能缓存、断点续传支持
- PHP 7.4+
- cURL扩展
- 可写的logs目录
-
克隆项目 ```bash git clone https://github.com/your-username/php-file-hosting.git cd php-file-hosting ```
-
配置环境 ```bash cp .env.example .env ```
-
编辑配置文件 ```bash nano .env ```
配置您的WebDAV信息: ```env
APP_NAME="PHP文件床" APP_URL=http://your-domain.com
DEFAULT_WEBDAV=your_webdav_alias WEBDAV_YOUR_ALIAS_NAME="您的WebDAV存储" WEBDAV_YOUR_ALIAS_URL="https://your-webdav-server.com/dav/" WEBDAV_YOUR_ALIAS_USERNAME="your_username" WEBDAV_YOUR_ALIAS_PASSWORD="your_password"
ADMIN_PASSWORD=your_admin_password ```
-
设置权限 ```bash chmod 755 . chmod 666 .env mkdir -p logs chmod 777 logs ```
-
访问应用
- 访问主页
- 选择或拖拽文件到上传区域
- 等待上传完成
- 复制生成的链接
- 访问 `/admin.php`
- 输入管理员密码
- 可以:
- 修改系统配置
- 管理WebDAV存储
- 查看系统日志
- 测试连接状态
```bash
curl -F "[email protected]" http://your-domain.com/api.php
curl -F "[email protected]" -F "webdav=backup" http://your-domain.com/api.php ```
- `APP_NAME`: 应用名称
- `APP_DEBUG`: 调试模式
- `UPLOAD_MAX_SIZE`: 最大上传大小(字节)
- `ALLOWED_EXTENSIONS`: 允许的文件扩展名
支持配置多个WebDAV存储,格式: ```env WEBDAV_ALIAS_NAME="显示名称" WEBDAV_ALIAS_URL="WebDAV服务器URL" WEBDAV_ALIAS_USERNAME="用户名" WEBDAV_ALIAS_PASSWORD="密码" WEBDAV_ALIAS_BASE_PATH="/上传路径/" ```
- `API_KEY_REQUIRED`: 是否需要API密钥
- `RATE_LIMIT_ENABLED`: 是否启用速率限制
- `ADMIN_PASSWORD`: 管理员密码
- ✅ TeraCloud
- ✅ Nextcloud
- ✅ ownCloud
- ✅ 坚果云
- ✅ 其他标准WebDAV服务
- 前端: Bootstrap 5 + 原生JavaScript
- 后端: PHP 7.4+
- 存储: WebDAV协议
- 配置: 环境变量(.env)
- 日志: JSON格式结构化日志
欢迎提交Issue和Pull Request!
```bash
echo "APP_DEBUG=true" >> .env
tail -f logs/app.log ```
MIT License
- 基础文件上传功能
- WebDAV存储支持
- 管理后台
- API接口
- 在线预览功能