PHPackages                             jzkf/filemanager - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. jzkf/filemanager

ActiveYii2-extension[File &amp; Storage](/categories/file-storage)

jzkf/filemanager
================

A comprehensive file management module for Yii2 framework with support for multiple storage drivers

2.3.3(1mo ago)018BSD-3-ClausePHPPHP &gt;=8.1.0

Since Dec 21Pushed 1mo agoCompare

[ Source](https://github.com/jzkf/yii2-filemanager)[ Packagist](https://packagist.org/packages/jzkf/filemanager)[ RSS](/packages/jzkf-filemanager/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (22)Versions (6)Used By (0)

FileManager 文件管理模块
==================

[](#filemanager-文件管理模块)

集中管理系统中所有上传的文件，提供统一的文件上传、存储、检索和管理功能。

🌟 核心功能
------

[](#-核心功能)

### ✅ 已实现功能

[](#-已实现功能)

- **文件上传**

    - 支持图片、文档、视频、音频等多种格式
    - 图片自动压缩和缩略图生成
    - 拖拽上传支持
    - 实时上传进度显示
    - 多文件批量上传
- **文件选择器**

    - 统一的 Modal 界面
    - 选择已有文件或上传新文件
    - AJAX 翻页和搜索
    - 文件类型过滤
    - 网格化展示
- **FileUploadWidget**

    - 可复用的上传组件
    - 支持 ActiveForm 集成
    - 两种显示模式（按钮/内联）
    - 事件驱动更新
    - 文件预览功能
- **文件管理**

    - 文件列表查看
    - 文件详情查看
    - 文件删除功能
    - 按类型/时间筛选
    - 存储空间统计

### 🚧 规划中功能

[](#-规划中功能)

- 文件分类管理
- 文件去重（已实现）
- 批量操作
- 云存储支持（已实现）
- 图片编辑
- 文件版本管理

📁 目录结构
------

[](#-目录结构)

安装后，包位于 `vendor/jzkf/filemanager/`：

```
vendor/jzkf/filemanager/
├── controllers/
│   └── DefaultController.php    # 控制器
├── docs/
│   ├── PRD.md                   # 产品需求文档
│   ├── FileUploadWidget使用说明.md
│   ├── 文件选择器说明.md
│   ├── 模块优化建议.md
│   └── 优化实施指南.md
├── messages/
│   └── zh-CN/
│       └── filemanager.php      # 中文翻译
├── migrations/
│   ├── M251205030145CreateMediaCategoriesTable.php
│   └── M251205032620CreateMediaFilesTable.php
├── models/
│   ├── File.php                 # 文件模型
│   ├── FileQuery.php            # 查询类
│   ├── form/
│   │   └── UploadForm.php       # 上传表单
│   └── search/
│       └── FileSearch.php       # 搜索模型
├── services/
│   ├── FileService.php          # 业务服务层
│   └── FlysystemService.php     # Flysystem 服务
├── views/
│   └── default/
│       ├── index.php            # 文件列表
│       ├── view.php             # 文件详情
│       ├── upload.php           # 上传表单
│       └── file-picker.php      # 文件选择器
├── widgets/
│   └── FileUploadWidget.php    # 文件上传组件
├── FileManagerModule.php        # 模块定义
└── README.md                    # 本文件

```

🚀 快速开始
------

[](#-快速开始)

### 1. 安装

[](#1-安装)

#### 方式一：从 Packagist 安装（推荐，稳定版本）

[](#方式一从-packagist-安装推荐稳定版本)

```
composer require jzkf/filemanager
```

> **注意**：如果遇到 "Could not find a version matching your minimum-stability" 错误，说明包尚未发布稳定版本。请查看 [安装指南](./INSTALL.md) 了解如何从 GitHub 安装或发布版本。

#### 方式二：从 GitHub 安装（开发版本）

[](#方式二从-github-安装开发版本)

如果包尚未发布到 Packagist，或需要使用最新开发版本：

```
# 方法 1：直接指定 GitHub 仓库
composer require jzkf/filemanager:dev-master

# 方法 2：在 composer.json 中添加仓库配置
```

在项目的 `composer.json` 中添加：

```
{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/jzkf/filemanager.git"
        }
    ],
    "require": {
        "jzkf/filemanager": "dev-master"
    }
}
```

然后运行：

```
composer update jzkf/filemanager
```

### 2. 配置模块

[](#2-配置模块)

在应用配置文件中注册模块（例如 `backend/config/main.php` 或 `common/config/main.php`）：

```
'modules' => [
    'filemanager' => [
        'class' => 'jzkf\filemanager\FileManagerModule',

        // 可选：自定义上传配置
        'uploadMaxSize' => 10 * 1024 * 1024,  // 10MB
        'uploadAllowedExtensions' => ['jpg', 'jpeg', 'png', 'gif', 'pdf', ...],

        // 可选：自定义图片处理配置
        'uploadImageMaxDimensions' => [1920, 1920],
        'uploadImageThumbnails' => [
            'small' => [150, 150],
            'medium' => [400, 400],
            'large' => [720, 540],
        ],
        'uploadImageQuality' => 85,
        'uploadImageEnableWebp' => true,
        'uploadImageWebpQuality' => 80,

        // 可选：自定义存储配置
        'storageDefault' => env('FILE_STORAGE_DRIVER', 'local'),
        'storageDrivers' => [
            'local' => [
                'basePath' => '@web/uploads',
                'baseUrl' => '',
            ],
            // 其他存储驱动配置...
        ],

        // 可选：自定义安全配置
        'securityCheckMimeType' => true,
        'securityAllowedMimeTypes' => [...],
        'securityFileNameBlacklist' => ['..', '/', '\\', ...],

        // 可选：功能开关
        'featuresEnableDeduplication' => true,
        'featuresEnableCompression' => true,
        'featuresEnableThumbnail' => true,
        'featuresEnableWebp' => true,

        // 可选：分页配置
        'paginationPageSize' => 20,
        'paginationPickerPageSize' => 12,

        // 可选：清理配置
        'cleanupEnableAutoCleanup' => true,
        'cleanupUnusedFileDays' => 30,
        'cleanupDeletedFileDays' => 7,
    ],
],
```

所有配置项都有默认值，可以根据需要选择性覆盖。

### 4. 运行迁移

[](#4-运行迁移)

```
# 创建数据表和索引
./yii migrate --migrationPath=@vendor/jzkf/filemanager/migrations
```

或者使用别名（需要在配置中注册别名）：

```
// 在配置文件中注册别名
Yii::setAlias('@jzkf/filemanager', '@vendor/jzkf/filemanager');
```

然后使用：

```
./yii migrate --migrationPath=@jzkf/filemanager/migrations
```

### 5. 配置路由

[](#5-配置路由)

在应用配置中配置路由（例如 `backend/config/main.php`）：

```
'components' => [
    'urlManager' => [
        'rules' => [
            // 文件管理路由
            'filemanager//' => 'filemanager//',
        ],
    ],
],
```

### 6. 配置权限

[](#6-配置权限)

在 Casbin 或 RBAC 中配置文件管理权限，或配置公共路由：

```
'publicRoutes' => [
    '/filemanager/default/upload-form',
    '/filemanager/default/upload-file',
    '/filemanager/default/file-picker',
],
```

💡 使用示例
------

[](#-使用示例)

### 在表单中使用文件上传

[](#在表单中使用文件上传)

```
