根据公司业务需求,同一项目文件需归类统一在同一项目文件夹,功能实现起来其实也比较简单,但是开始时个人查找资料什么的费了不少功夫,故在此处做记录,方便有需求却不太了解如果修改的朋友共同学习。
首先文件上传功能在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字段为项目唯一标识,此处通过匿名函数获取该值,并生成对应的目录名,即实现了上传文件目录自定义功能。