seni/filefinder

Laravel 框架的快速文件查找器

v1.4 2019-05-29 12:28 UTC

This package is not auto-updated.

Last update: 2024-09-27 13:14:37 UTC


README

入门

您必须首先安装此包。请运行以下命令

composer require seni/filefinder

您必须将包服务提供者添加到项目中

`'providers' => [ ...

Seni\FileFinder\FileFinderServiceProvider::class, .....]` to 
`YourAppName/config/app.php`

包的后端

创建一个新的控制器。将包添加到控制器中

use Seni\FileFinder\File;

可用方法

  • File::allAccessibleFiles([value, ...]);
  • File::searchByKeyword($accessibleFiles, $keyword);
  • File::storeFile($uploadedFile, $filename, $userFileDir = 'shared', $disk = 'public');
  • File::downloadFile($filepath);
  • File::deleteFile($filepath);

在索引方法中,您可以使用

File::allAccessibleFiles([value, ...]);,作为参数该方法期望可访问的目录/目录和磁盘('local' / 'public')。可访问的目录是您提供给用户访问的目录数组。您可以在控制器中使用全局变量。磁盘默认值为public,如果您想的话,可以更改它。

示例

public $accessibleDirectories = ['shared', 1];

File::allAccessibleFiles($this->accessibleDirectories);

该方法将返回可访问的文件数组。

方法 File::searchByKeyword($accessibleFiles, $keyword) 可用于查找包含可搜索关键字的单个文件。作为参数,该方法期望可访问的文件数组和字符串关键字。方法返回响应的文件/文件数组。

示例

    $keyword = $request->input('search');
    $accessibleFiles = File::allAccessibleFiles($this->accessibleDirectories);
    $files = File::searchByKeyword($accessibleFiles, $keyword); 

另一个可用方法是 File::storeFile($uploadedFile, $filename, $userFileDir = 'shared', $disk = 'public'); 该方法将文件存储到项目的存储文件夹中。作为参数,该方法期望 $uploadedFile 是对象,$filename 是字符串,$userFileDir 是字符串。默认情况下 $userFileDir 是共享文件夹。如果您想将文件存储到其他文件夹(例如 $userId, $username),您可以更改目录。最后一个参数是 $disk,默认是public目录。

示例

 $uploadedFile = $request->file('upload_file');
 $filename = $uploadedFile->getClientOriginalName();
 File::storeFile($uploadedFile, $filename, $userId, $disk = 'public');

该包提供您使用 File::downloadFile($filepath, $disk = 'public') 下载文件的功能。要使用它,您必须设置文件路径作为参数。您还可以更改 $disk 的值。

示例

    $filePath = '/files/shared/fileName.txt';
    return File::downloadFile($filePath);

当然,您还可以使用包中的删除文件方法。该方法是 File::deleteFile($filePath);。它的工作方式与 File::downloadFile($filepath, $disk = 'public') 相同。您也可以更改 $disk 的值。

示例

    $filePath = '/files/shared/fileName.txt';
    return File::deleteFile($filePath);

包的 UI

您可以使用包的 blade,就像您添加 return view('filefinder::index', ['files' => $files]) 一样;

上传文件 / 输入类型文件 /

要使用包的片段,您需要使用以下代码片段 @include('filefinder::partials.input_type_file')

当您使用上传文件组件时,您可以添加自定义

  • 按钮“提交上传的文件”
    • 将按钮的类添加到按钮 - $submitButtonClasses - 字符串
    • 将按钮的文本添加到按钮 - $submitButtonText - 字符串
  • 输入“上传文件”
    • 名称 - $inputName - 字符串
    • 文件扩展名 - $fileExtensions - 字符串
    • 将类添加到组件包装器 - $customClassesForFileWrapper- 字符串
    • 将类添加到输入类型文件 - $customClassesForInput- 字符串
    • 将 ID 添加到输入类型文件 - $customIdForInput- 字符串
    • 将类添加到标签 - $customClassesForLabel - 字符串
    • 将文本添加到标签 - $customLabelText - 字符串
    • 额外的数据属性 - $additionalDataAttributes - 数组

示例

    @include('filefinder::partials.input_type_file',
            ['customClassesForInput' => 'btn btn-default',
             'additionalDataAttributes' => ['dataAttribute' => 'value']
             ]
         )

!注意:您可以创建自己的自定义组件

上传文件 / 输入类型文件 /

要使用该包的局部组件,您需要使用以下代码片段 @include('filefinder::partials.input_search')

当您使用搜索字段时,您可以添加自定义

  • 搜索输入
    • 组件包装器 - $customClassesForSearchWrapper - 字符串
    • 名称 - $searchName / 默认名称:搜索 - 字符串
    • 输入框的类 - $customClassesForSearchInput - 字符串
    • 输入框的占位符 -$customSearchPlaceholder - 字符串
  • 搜索按钮
    • 按钮的类 - $submitButtonClasses - 字符串
    • 按钮的文本

示例

    @include('filefinder::partials.input_search',
            ['searchName' => 'search_field',
             'submitButtonClasses' => 'btn btn-default'
             ]
         )

!注意:您可以创建自己的自定义组件