mcpField
S
syncfusion-angular-file-manager

syncfusion-angular-file-manager

github.com/syncfusion开发0314 次安装1 周前更新
代码仓库

关于 syncfusion-angular-file-manager

这是面向 Angular 开发者的 Syncfusion File Manager 组件实施指南,用于构建文件和文件夹管理界面。指南覆盖客户端或服务端数据、常见文件操作、界面定制,并提供 Azure Blob Storage 与 Amazon S3 的 Docker 服务部署说明。

主要功能

  1. 01文件与文件夹操作
  2. 02面包屑和层级导航
  3. 03列表与大图标视图
  4. 04拖放、排序与多选
  5. 05大数据集虚拟滚动
  6. 06Azure Blob Storage 和 Amazon S3 服务部署

适用场景

  1. 01构建文件浏览与管理界面
  2. 02提供文件上传、下载和整理功能
  3. 03浏览大型文件集合
  4. 04部署连接 Azure Blob Storage 或 Amazon S3 的服务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/syncfusion/angular-ui-components-skills --skill syncfusion-angular-file-manager

安装后在 Claude Code 中输入/syncfusion-angular-file-manager确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
access-control-and-permissions.md
advanced-features.md
api-reference-complete.md
authentication-and-custom-values.md
context-menu-customization.md
custom-file-provider.md
customization-styling.md
data-structures.md
docker-deployment.md
drag-and-drop.md
file-operations.md
getting-started.md
localization-and-rtl.md
methods-and-events.md
navigation-features.md
navigation-items-customization.md
nested-items-integration.md
request-response-parameters-reference.md
sorting-and-filtering.md
toolbar-and-context-menu.md
toolbar-customization.md
ui-customizations.md
upload-customizations.md
views-and-layout.md
virtualization.md

详细介绍

实现 Syncfusion Angular 文件管理器组件

文件管理器是一款功能强大的图形用户界面组件,用于管理文件系统。它提供直观的界面和全面的导航功能,让用户能够执行基本的文件操作,包括访问、编辑、排序、上传、下载以及整理文件和文件夹。

何时使用此技能

在需要以下功能时,使用文件管理器组件:

  • 浏览和导航文件系统中的文件和文件夹
  • 执行文件操作(创建、删除、重命名、上传、下载)
  • 以不同视图模式显示文件(详细信息视图、大图标视图)
  • 实现拖放式文件管理
  • 借助虚拟化高效处理大量文件
  • 自定义工具栏、上下文菜单和文件显示
  • 支持多选、排序和本地化
  • 通过 Docker 部署用于 Azure Blob Storage 或 Amazon S3 的后端提供程序服务

组件概述和主要功能

核心功能
  • 文件操作:读取、创建、删除、重命名、上传和下载文件
  • 导航:面包屑导航、导航窗格、文件夹层级结构
  • 视图选项:详细信息视图(排序列表)和大图标视图(缩略图显示)
  • 用户交互:多选、拖放、右键上下文菜单
  • 性能:针对大量文件的 UI 虚拟化、状态持久化
  • 自定义:工具栏和上下文菜单自定义、CSS 主题、图标自定义
  • 无障碍功能:RTL 支持、本地化、ARIA 属性
架构
  • 通过 ajaxSettings 执行基于服务器的文件操作
  • 或使用 fileSystemData(扁平或嵌套的 JSON)进行客户端数据绑定
  • 功能模块:导航窗格、工具栏、详细信息视图、虚拟化
  • 事件驱动架构,支持自定义工作流

文档和导航指南

API 参考(从这里开始了解 API 详情)

📄 阅读: references/api-reference-complete.md

  • 完整的组件属性及其说明
  • 用于客户端绑定的 FileData 接口
  • 配置模型和最佳实践
  • 服务提供程序和实用工具函数
方法和事件参考

📄 阅读: references/methods-and-events.md

  • 所有组件方法的完整列表及示例
  • 所有组件事件及其事件参数
  • 事件参数接口及说明
  • 每种方法和事件的实用示例
入门指南

📄 阅读: references/getting-started.md

  • 前提条件(Angular 4+、TypeScript 2.6+)
  • Angular 项目设置和 CLI 命令
  • 包安装(Ivy 与 ngcc 兼容性)
  • CSS 主题导入和样式设置
  • 基本组件初始化
  • ajaxSettings 配置(文件操作、下载、上传、预览 URL)
  • 初始视图和组件呈现
文件操作

📄 阅读: references/file-operations.md

  • 核心操作:读取、创建、删除、重命名、上传、下载、复制、移动
  • 文件系统提供程序配置
  • 服务器集成模式
  • 自定义文件提供程序(Google Drive、Amazon S3、Azure)
  • 目录上传支持
  • 错误处理和验证
  • 请求/响应模式
请求和响应参数

📄 阅读: references/request-response-parameters-reference.md

  • 全部 11 种操作的完整响应参数
  • 每种操作的请求结构和参数
  • 响应格式和结构规范
  • FileManagerDirectoryContent 接口定义
  • DetailsObject 和错误响应格式
  • 每种操作的请求/响应示例
  • 错误代码和错误处理模式
  • 常见数据结构和接口
  • 后端实现最佳实践
上传自定义配置

📄 阅读: references/upload-customizations.md

  • 目录上传配置(directoryUpload 属性)
  • 顺序上传设置(sequentialUpload 属性)
  • 大文件分块上传(chunkSize 配置)
  • 控制自动上传行为
  • 文件大小验证(minFileSize、maxFileSize)
  • 文件类型限制(allowedExtensions)
  • 上传事件(beforeSend、onSuccess、onFailure)
  • 后端实现示例(ASP.NET Core)
  • 3 个实用示例,涵盖仅允许图像、文档和完整上传配置
视图和布局

📄 阅读: references/views-and-layout.md

  • 详细信息视图(带列的已排序文件列表)
  • 大图标视图(缩略图显示)
  • 动态切换视图或在初始化时设置视图
  • 初始视图配置
  • 用于样式设置的 CSS 类自定义
  • 视图专属设置和配置
导航功能

📄 阅读: references/navigation-features.md

  • 面包屑导航(跟踪文件夹层级)
  • 导航窗格配置(带文件夹树的左侧边栏)
  • 路径指定和动态导航
  • 遍历文件夹层级
  • 显示/隐藏导航元素
数据结构

📄 阅读: references/data-structures.md

  • 扁平 JSON 数据绑定(无需后端)
  • 嵌套项目(本地数据中的文件夹层级)
  • fileData 接口和属性(name、size、date、isFile、hasChild 等)
  • 通过 parentId 建立父子关系
  • 扁平与嵌套方案及其权衡
  • 基于服务器的数据与客户端数据
嵌套项目集成

📄 阅读: references/nested-items-integration.md

  • 对话框嵌套与文件选择模式
  • 选项卡嵌套(每个选项卡中放置多个 File Manager)
  • 分隔器嵌套(并排布局)
  • 手风琴面板嵌套(分类访问文件)
  • 管理多个嵌套 File Manager 的状态
  • 高度计算策略
  • 尺寸管理最佳实践
  • 2 个实用示例:文件上传对话框、选项卡式文件管理
拖放

📄 阅读: references/drag-and-drop.md

  • 启用拖放功能
  • 放置目标配置
  • 通过拖动移动文件
  • 拖动事件处理(fileDragStart、fileDragging、fileDragStop、fileDropped)
  • 限制和放置约束
  • 拖动操作期间的视觉反馈
虚拟化

📄 阅读: references/virtualization.md

  • 什么是 UI 虚拟化及其性能优势
  • 模块注入(VirtualizationService)
  • 启用虚拟化(enableVirtualization 属性)
  • 处理大型文件集(数百至数千个文件)
  • 内存优化和滚动性能
  • 详细信息视图和大图标视图中的虚拟滚动
排序和筛选

📄 阅读: references/sorting-and-filtering.md

  • 通过 sortComparer 函数自定义排序
  • 自然排序(类似 Windows Explorer)
  • 排序顺序(升序/降序)
  • 详细信息视图中的多列排序
  • 针对特定列定义 sortComparer
  • 导入 sortComparer 实用工具或自定义实现
工具栏自定义

📄 阅读: references/toolbar-customization.md

  • 工具栏配置和项目
  • 默认工具栏项目(NewFolder、Upload、View、Refresh、Cut、Copy、Paste、Delete、Download、Rename)
  • 使用模板添加自定义工具栏项目
  • 修改工具栏项目属性
  • 工具栏图标(Syncfusion、Font Awesome、自定义 SVG)
  • 基于模板的工具栏项目(复选框、下拉菜单)
  • 工具栏点击事件和事件处理
  • 根据选择内容显示条件式工具栏项目
上下文菜单自定义

📄 阅读: references/context-menu-customization.md

  • 默认上下文菜单项(打开、剪切、复制、粘贴、删除、重命名、下载)
  • 添加自定义上下文菜单项
  • 文件、文件夹和布局的上下文菜单配置
  • 菜单事件(menuOpen、menuClose、menuClick)
  • 动态修改菜单和条件菜单项
  • 为菜单项添加图标
  • 自定义菜单操作和实现
  • 子菜单支持
访问控制和权限

📄 阅读: references/access-control-and-permissions.md

  • 权限模型和 FileData 权限结构
  • 实现基于角色的访问控制(RBAC)
  • 文件级和文件夹级权限
  • 后端权限规则配置
  • 使用 Permission 枚举(Allow/Deny)的访问规则
  • 前端权限处理和 UI 禁用
  • 管理员、编辑者和查看者角色示例
  • 审计日志和合规性
身份验证和自定义值

📄 阅读: references/authentication-and-custom-values.md

  • 用于添加身份验证标头的 beforeSend 事件
  • JWT 令牌身份验证实现
  • Bearer 令牌模式
  • 自定义标头(API 密钥、请求 ID、关联 ID)
  • 使用请求传递自定义数据
  • 查询参数和正文数据
  • CORS 配置和跨源请求
  • OAuth2 令牌刷新模式
  • 多租户文件管理器设置
  • 审计跟踪和请求日志记录
自定义文件提供程序

📄 阅读: references/custom-file-provider.md

  • 自定义文件提供程序架构
  • 必需的 API 端点(FileOperations、Upload、Download、GetImage)
  • 请求/响应格式规范
  • ASP.NET Core 自定义后端实现
  • Azure Blob Storage 集成
  • AWS S3 集成
  • 数据库支持的文件系统(SQL)
  • Google Drive 和云存储模式
  • 实现 ICustomFileService 接口
Docker 部署

📄 阅读: references/docker-deployment.md

  • 适用于 Azure Blob Storage 和 Amazon S3 的统一文件管理器提供程序 Docker 镜像
  • 使用 FILEMANAGER_PROVIDER 环境变量选择存储提供程序
  • Docker、Azure Storage 和 Amazon S3 的先决条件
  • AZURE_* 和 AWS_* 设置的环境变量参考
  • 使用 docker-compose.yml 逐步部署 Docker
  • 拉取已发布的 syncfusion/filemanager-provider 镜像
  • 通过 http://localhost:5000/api/Test 验证服务
  • 配置 Angular 客户端的 ajaxSettings,使其指向容器化服务
  • 常见部署、端口映射和 DNS 问题的故障排除
高级功能

📄 阅读: references/advanced-features.md

  • 多选文件和文件夹
  • 状态持久化(enablePersistence 属性)
  • 在页面重新加载后保留视图、路径和选中项
  • Ajax 事件(success、failure)
  • 组件生命周期(created 事件)
  • 以编程方式刷新文件操作
  • 使用批量操作多选文件
UI 自定义

📄 阅读: references/ui-customizations.md

  • 大图标自定义(大小、布局、样式)
  • 自定义文件类型图标映射
  • showFileExtension 属性及其动态控制
  • showHiddenItems 配置与服务端筛选
  • 使用文件信息自定义工具提示
  • 使用 allowMultiSelection 控制单选/多选切换
  • 多选限制模式
  • showThumbnail:控制缩略图显示(针对大型集合进行性能调优)
  • showItemCheckBoxes:启用选择复选框(便于移动设备使用并提升无障碍体验)
  • enableHtmlSanitizer:防止 XSS 攻击的安全属性(重要:请保持启用)
  • popupTarget:指定弹出窗口/对话框容器(嵌套式文件管理器必需)
  • 15 个以上可用代码示例,涵盖 CSS 模式和高级配置
  • 完整的 UI 自定义示例
导航项自定义

📄 阅读: references/navigation-items-customization.md

  • navigationPaneTemplate 的基础和高级用法
  • 使用层级样式自定义项目渲染
  • 图标和徽章集成模式
  • 导航项的 CSS 样式方法
  • 动态主题应用(浅色/深色切换)
  • 基于路径的图标自定义
  • 专业的导航设计模式
  • 1 个全面的专业导航示例
自定义与样式

📄 阅读: references/customization-styling.md

  • CSS 类自定义(cssClass 属性)
  • 主题自定义与 Theme Studio 集成
  • 自定义缩略图(showThumbnail 属性)
  • 为文件和文件夹自定义图标显示
  • 响应式设计和容器尺寸设置
  • 高级样式示例
  • CSS 变量覆盖
本地化和 RTL

📄 阅读: references/localization-and-rtl.md

  • 支持从右到左(RTL)书写的语言(enableRtl 属性)
  • 本地化库(l10)集成
  • 语言配置与切换
  • 自定义文本和消息本地化
  • 区域日期/时间格式

快速入门示例

基础文件管理器设置
import { Component } from '@angular/core';
import { FileManagerModule, NavigationPaneService, ToolbarService, DetailsViewService } from '@syncfusion/ej2-angular-filemanager';

@Component({
  imports: [FileManagerModule],
  providers: [NavigationPaneService, ToolbarService, DetailsViewService],
  standalone: true,
  selector: 'app-root',
  template: `<ejs-filemanager 
    id='file-manager' 
    [ajaxSettings]='ajaxSettings' 
    height="500px">
  </ejs-filemanager>`
})
export class AppComponent {
  public ajaxSettings = {
    url: 'url',
    getImageUrl: 'url',
    uploadUrl: 'url',
    downloadUrl: 'url'
  };
}
使用本地 JSON 数据(无需后端)
import { Component } from '@angular/core';
import { FileManagerModule } from '@syncfusion/ej2-angular-filemanager';
import { FileData } from '@syncfusion/ej2-filemanager';

@Component({
  imports: [FileManagerModule],
  standalone: true,
  selector: 'app-root',
  template: `<ejs-filemanager 
    id='file-manager' 
    [fileSystemData]='fileData' 
    height="500px">
  </ejs-filemanager>`
})
export class AppComponent {
  public fileData: { [key: string]: Object }[] = [
    {
      id: '1',
      name: 'Documents',
      isFile: false,
      hasChild: true,
      parentId: null,
      dateModified: new Date('2024-01-15')
    },
    {
      id: '2',
      name: 'Resume.pdf',
      isFile: true,
      hasChild: false,
      parentId: '1',
      size: 204800,
      dateModified: new Date('2024-01-10')
    }
  ];
}

常见模式

模式 1:使用完整配置集成服务端

适用场景: 使用后端服务构建生产级文件管理器

// app.component.ts
ajaxSettings = {
  url: '/api/FileManager/FileOperations',
  getImageUrl: '/api/FileManager/GetImage',
  uploadUrl: '/api/FileManager/Upload',
  downloadUrl: '/api/FileManager/Download'
};

toolbarSettings = {
  items: ['NewFolder', 'Upload', 'Download', 'Delete', 'Refresh', 'View', 'Details']
};
模式 2:使用自定义格式处理本地数据

适用场景: 数据来自 API,但不需要后端文件操作

将 API 响应转换为 fileData 格式:

fileData = this.apiService.getFiles().map(file => ({
  id: file.id,
  name: file.fileName,
  isFile: file.type === 'file',
  parentId: file.parentId || null,
  size: file.fileSize,
  dateModified: new Date(file.modified)
}));
模式 3:大型数据集的虚拟化

适用场景: 处理 1000 个以上的文件

// Inject VirtualizationService, enable enableVirtualization
providers: [VirtualizationService]

// In template
<ejs-filemanager 
  [enableVirtualization]="true"
  [view]="'Details'"
  ...>
</ejs-filemanager>
模式 4:带操作的多选

适用场景: 需要批量文件操作

onDownloadSelected() {
  const selected = this.fileManager.selectedItems;
  // Download multiple files (server returns ZIP)
}

关键属性和设置

核心配置
属性类型用途
ajaxSettingsAjaxSettingsModel文件操作的服务端端点(url、uploadUrl、downloadUrl、getImageUrl)
fileSystemDataFileData[]本地 JSON 数据(ajaxSettings 的替代方案)
pathstring要显示的初始目录路径
viewViewType初始视图模式:'Details' 或 'LargeIcons'
heightstring | number组件高度
widthstring | number组件宽度
选择与多选
属性类型用途
allowMultiSelectionboolean启用 Ctrl+Click 和 Shift+Click 选择
enableRangeSelectionboolean启用基于拖动的选择(Windows Explorer 风格)
文件操作
属性类型用途
allowDragAndDropboolean启用拖放文件移动
uploadSettingsUploadSettingsModel上传配置(maxFileSize、minFileSize、autoUpload、allowedExtensions、directoryUpload)
searchSettingsSearchSettingsModel搜索配置(filterType、allowSearchOnTyping、caseSensitive)
显示与性能
属性类型用途
showThumbnailboolean显示图像缩略图
showHiddenItemsboolean显示/隐藏隐藏文件和文件夹(默认值:false)
showFileExtensionboolean显示文件扩展名(默认值:true)
enableVirtualizationboolean对大型文件集(1000+ 项)启用虚拟化
enablePersistenceboolean持久化视图、路径和所选项目
enableRtlboolean支持从右到左的布局
enableHtmlSanitizerboolean清理 HTML 以确保安全
UI 自定义
属性类型用途
toolbarSettingsToolbarSettingsModel工具栏项和可见性
navigationPaneSettingsNavigationPaneSettingsModel左侧边栏配置
contextMenuSettingsContextMenuSettingsModel右键菜单自定义
detailsViewSettingsDetailsViewSettingsModel详细信息视图的列和排序
navigationPaneTemplatestring | object导航节点的自定义模板
largeIconsTemplatestring | object大图标视图的自定义模板
cssClassstring用于主题设置的 CSS 类
localestring本地化区域设置(例如,'de-DE'、'ja-JP')
排序与比较
属性类型用途
sortComparerFunction自定义排序函数(支持类似 Windows Explorer 的排序)

决策树:选择合适的方式

Do you have a backend file service? 
  ├─ YES → Use ajaxSettings (see Getting Started)
  │        └─ Need to handle 1000+ files?
  │            ├─ YES → Enable enableVirtualization
  │            └─ NO → Standard setup
  │
  └─ NO → Use fileSystemData with local JSON
           └─ Need to organize hierarchically?
               ├─ YES → Use nested items with parentId
               └─ NO → Use flat data structure

后续步骤: 选择与当前任务相匹配的参考资料,并通过代码示例和最佳实践深入了解实现细节。

评论

支持 Markdown