yu-yu-tech/file-manager

Laravel 包,用于管理存储及其映射

2.1.4 2023-11-02 06:10 UTC

This package is auto-updated.

Last update: 2024-10-01 00:06:49 UTC


README

管理s3与本地文件系统的存储访问

安装

# In your Laravel Project
$ composer require yuyu-tech/file-manager

# Publish package resourceses using
$ php artisan vendor:publish --provider="Yuyu\FileManager\Providers\FileManagerServiceProvider"

#To migrate package resources
$ php artisan migrate --path=database/migration/2019_10_24_090016_create_attachments_table.php

# For ease of use for local storage, create the symbolic link for storage directory using
# Not require for S3 storage
$ php artisan storage:link

如何访问它?

我们可以通过以下方式生成 FileManagerController 的实例。

  • 使用 Facade(FileManager)
    use FileManager;
    $objFileManager = new FileManager;
  • 使用类(FileManagerController)
    use \Yuyu\FileManager\Controllers\FileManagerController;
    $objFileManager = new FileManagerController;
  • 使用 app 辅助函数(fileManager)
    $objFileManager = app('fileManager');

存储文件

我们可以直接存储文件内容或UploadedFile 对象。

存储上传文件对象
  • 使用 FileManager 实例的 storeFile 方法存储任何附件
  • 输入参数
    • 上传文件对象
    • 将要映射的对象。
    • 关系方法名称
    • 存储路径
  • 它将返回一个 Attachment 实例。
  • 例如
    $objAttachment = FileManager::storeFile($request->file, $user, 'profilePicture', '/user/profile-picture/');
存储内容
  • 使用 FileManager 实例的 storeContent 方法存储内容。
  • 输入参数
    • 文件内容
    • 原始文件名
    • MIME 类型
    • 文件扩展名
    • 将要映射的对象。
    • 关系方法名称
    • 存储路径
  • 它将返回一个 Attachment 实例。
  • 例如
    $objAttachment = FileManager::storeContent($content, $strFileName, $strMimeType, $strExtension, $user, 'profilePicture', $strPath='user/profile-picture');

生成访问 URL

  • 我们可以使用 FileManager 的 getAccessUrl 方法为任何附件生成查看或下载 URL。
  • 输入参数
    • 附件 ID
    • 访问 URL 类型:可以是 "view" 或 "download",默认值:"view"
    • 过期时间:在多少分钟后 URL 将不再有效。默认值:"1440" 分钟
  • 它将返回 URL
  • 例如
// Generate a view URL for attachment id 1 which will expire after 50 Minutes.
$strViewUrl = FileManager::getAccessUrl(1, 'view', 50);

// Generate a download URL for attachment id 1 which will never expire
// Here to generate never expire URL we will pass a biggest value for expire after parameter.
$strViewUrl = FileManager::getAccessUrl(1, 'download', 99999999999);
注意:在此处生成访问 URL 时,我们不验证附件的存在。