alireza-moh/laravel-file-explorer

Laravel File Explorer 是一款用于Laravel应用程序中轻松文件管理的包,提供浏览、上传和删除文件等功能。适用于内容管理系统和文件存储解决方案。

This package is auto-updated.

Last update: 2024-09-11 12:41:50 UTC


README

Laravel File Explorer image

Laravel File Explorer 是一款用于Laravel应用程序中轻松文件管理的包,提供浏览、上传和删除文件等功能。

特性

  • 前端使用VueJS 3构建
  • 切换浅色/深色模式
  • 利用Laravel Flysystem标准进行文件系统操作
  • 支持本地、FTP、S3、Dropbox和其他存储选项
  • 支持文件系统操作
    • 对文件和目录执行CURD操作
    • 多文件上传功能
    • 下载文件
    • 图片预览
    • 视频播放器
    • 音频播放器
    • 代码编辑器(Codemirror)
    • Laravel事件
    • ACL

安装

使用composer安装Laravel File Explorer

  composer require alireza-moh/laravel-file-explorer

发布配置文件

  php artisan vendor:publish --tag=lfx.config

将前端下载到您的项目中

https://github.com/Alireza-Moh/laravel-file-explorer-frontend

  npm i laravel-file-explorer

将FileExplorer组件添加到vue应用中

import LaravelFileExplorer from "laravel-file-explorer";
import "laravel-file-explorer/dist/style.css";

app.use(LaravelFileExplorer);

在vue组件中使用该组件

  <LaravelFileExplorer :setting="{baseUrl: 'http://laravel-wrapper.localhost:8084/api/laravel-file-explorer/'}"/>

Laravel File Explorer 在模态框中

Laravel File Explorer image

您可以使用LaravelFileExplorerInModal组件将文件浏览器显示为弹出窗口,该弹出窗口返回所选文件的数组

<LaravelFileExplorerInModal :setting="{baseUrl: 'http://laravel-wrapper.localhost:8084/api/laravel-file-explorer/'}"
                            v-model="selectedFiles"/>

返回的数组结构如下

[
  {
    diskName: "mobileTV",
    parent: "iphone", //the directory where the file is located
    name: "1000016101.jpg",
    path: "iphone/1000016101.jpg",
    type: "file",
    size: 2318331,
    formattedSize: "2.21 MB",
    url: "",
    extension: "jpg",
    isChecked: true,
    lastModified: "2024-08-06 11:27:34",
    subDir: []
  },
  {
    diskName: "mobileTV",
    parent: "iphone", //the directory containing the file
    name: "9ABUnSDn0obF94vBHi86kdT4yNJ4smoyaU3bYWM8.jpg",
    path: "iphone/9ABUnSDn0obF94vBHi86kdT4yNJ4smoyaU3bYWM8.jpg",
    type: "file",
    size: 1701551,
    formattedSize: "1.62 MB",
    url: "",
    extension: "jpg",
    isChecked: true,
    lastModified: "2024-08-05 19:32:33",
    subDir: [] //if the directory contains subdirectories, they will also be included in the returned array
  }
]

启用ACL

具有ACL(访问控制列表)的Laravel File Explorer 允许您控制每个用户可以对文件执行的操作。您可以给每个用户分配权限,如创建、读取、更新、删除、上传和下载文件。

设置:ACL文档

使用Dropbox作为Laravel存储

Laravel Flysystem集成提供了用于处理本地文件系统、SFTP和Amazon S3的简单驱动程序

Laravel文档:文档

  • 要使用Dropbox,请通过composer安装spatie/flysystem-dropbox
  • 要使用AWS S3,请通过composer安装league/flysystem-aws-s3-v3
  • 要使用FTP,请通过composer安装league/flysystem-ftp
  • 要使用SFTP,请通过composer安装league/flysystem-sftp-v3