seni / filefinder
Requires
- php: >=7.2.0
- illuminate/support: ~5.8
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'
]
)
!注意:您可以创建自己的自定义组件