zipferot3000/laravel-filepond-adapter

Laravel 文件pond 上传适配器。

0.0.3 2024-03-18 10:57 UTC

This package is auto-updated.

Last update: 2024-09-18 12:19:54 UTC


README

Latest Version on Packagist Software License Total Downloads

此包将 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)。请参阅许可证文件以获取更多信息。