zipferot3000 / laravel-filepond-adapter
Laravel 文件pond 上传适配器。
0.0.3
2024-03-18 10:57 UTC
Requires
- spatie/laravel-medialibrary: ^11.0
README
此包将 filepond 适配器从 laravel 转换为 spatie/laravel-medialibrary。
安装
composer require zipferot3000/laravel-filepond-adapter
自动清理
要自动清理临时文件,请将命令添加到 App\Console\Kernel.php
。此命令将删除所有最老的5小时的文件。
$schedule->command('fp_adapter:clear --hour=5')->hourly();
配置 filepond 服务器对象
const server = { url: 'api/fp_adapter', headers: { 'X-Requested-With': 'XMLHttpRequest', 'X-XSRF-TOKEN': '' } }
页面加载后
this.server.headers["X-XSRF-TOKEN"] = this.getCookie('XSRF-TOKEN'); function getCookie(name) { const value = `; ${document.cookie}`; const parts = value.split(`; ${name}=`); if (parts.length === 2) return parts.pop().split(';').shift().replace('%3D', '=');; }
设置 Laravel 路由
Route::group(['middleware' => ['auth:sanctum']], function () { ........ fp_adapter()->getRoutes(); ........ });
或者在控制器中使用助手函数
- 本地加载文件
fp_adapter()->getFileResponseByUUID(request());
- 将文件存储到临时文件夹中(第二个参数必须实现 HasMedia 接口)
fp_adapter()->saveTemporaryFile(request(), auth()->user());
- 回滚上传文件(第二个参数必须实现 HasMedia 接口)
fp_adapter()->destroyTemporaryFile(request(), auth()->user());
其他助手命令
- 将媒体对象转换为 filepond 图片
fp_adapter()->formatMediaToFilepond($media);
- 将媒体从临时移动到新模型($from 和 $to 参数必须实现 HasMedia 接口)
fp_adapter()->moveFiles($files_uuid_array, $new_media_collection_name, $fs_disc_name, $from, $to);
包配置
您可以覆盖默认选项。首先发布配置
php artisan vendor:publish --provider="Zipferot3000\LaravelFilepondAdapter\FPAdapterServiceProvider"
这会将默认配置复制到 config/fp_adapter.php
,您可以在那里编辑它。
return [ /* * These options set filesystem for save temporary files */ 'filesystem' => env('FP_ADAPTER_TEMPORARY_FS', 'temporary'), /* * These options set name of media collection for temporary files */ 'media_collection' => env('FP_ADAPTER_MC', 'temporary_files'), /* * These options set custom property name for media object */ 'custom_property_name' => env('FP_ADAPTER_CP_NAME', 'file_type'), ];
许可
MIT 许可证(MIT)。请参阅许可证文件以获取更多信息。