laravel-admin实现文件上传动态目录功能

根据公司业务需求,同一项目文件需归类统一在同一项目文件夹,功能实现起来其实也比较简单,但是开始时个人查找资料什么的费了不少功夫,故在此处做记录,方便有需求却不太了解如果修改的朋友共同学习。
首先文件上传功能在laravel-admin中很容易实现,这里我先简单说明下几个要点。
1,要在laravle-admin中实现文件上传功能首先需要在config/filesystems.php 添加一项disk:

'disks' => [
    ... ,

    'admin' => [
        'driver' => 'local',
        'root' => public_path('uploads'),
        'visibility' => 'public',
        'url' => env('APP_URL').'/uploads',
    ],
],

此处是实现文件本地上传,需云端(七牛云等)上传修改配置即可。
2,不存在的文件夹会自动生成。

以下说明如何自动配置上传文件目录。
laravel-admin文件上传目录可直接使用内部函数来实现,函数名称为move().

// 修改文件上传路径和文件名
$form->file($column[, $label])->move($dir, $name);

当然此函数也可以定义为内部函数,这就是实现该功能的重点,具体如下:

$form->file('rt_db','实时库配置')->move(function ($file_path) use ($form) {
    return $form->code.'/rt_db';
})->removable()->downloadable();
$form->file('cfg_db','配置库配置')->move(function ($file_path) use ($form) {
    return $form->code.'/cfg_db';
})->removable()->downloadable();
$form->multipleFile('svg','svg文件')->move(function ($file_path) use ($form) {
    return $form->code.'/svg';
})->removable()->downloadable();

move()函数本身参数即为文件最终上传路径,可通过匿名函数更加灵活的配置,如我的项目中code字段为项目唯一标识,此处通过匿名函数获取该值,并生成对应的目录名,即实现了上传文件目录自定义功能。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容