laravel删除文件
一、总结
一句话总结:
1、注意disk:disk决定路径
2、删单个文件的时候就用删单个文件的方式,别用删多个文件的方式(也就是参数别数组)
public function index() { // 取到磁盘实例 $disk = Storage::disk('local'); // 删除单条文件 $disk->delete('test.txt'); // 删除多条文件 $disk->delete(['test22.txt', 'icon.jpg']); }
1、laravel中disks的根路径写法?
base_path就是根目录:'root' => base_path('')
'disks' => [ 'local' => [ 'driver' => 'local', 'root' => base_path(''), ], ],
二、Laravel框架 -- 自定义文件上传目录之删除文件
转自或参考:Laravel框架 -- 自定义文件上传目录之删除文件
https://blog.csdn.net/Hinsion/article/details/81671486
Laravel框架的上传文件目录是默认在 storage/app/public ,在一般情况下,我是会在根目录上重新创建一个目录(uploads)来存储我们上传的文件。
下面切入正题,我们想在上传成功的文件夹中删除指定的文件,那么,我们首先就要设置一个文件的内容:config/filesystems.php ,把里面的内容更改为:
'disks' => [
'local' => [
'driver' => 'local',
'root' => base_path(''),
],
'public' => [
'driver' => 'local',
'root' => base_path(),
'url' => env('APP_URL').'/uploads',
'visibility' => 'uploads',
],
's3' => [
'driver' => 's3',
'key' => env('AWS_KEY'),
'secret' => env('AWS_SECRET'),
'region' => env('AWS_REGION'),
'bucket' => env('AWS_BUCKET'),
],
],
注:base_path就是根目录的意思(不是很会的小伙伴要注意一下的)。
修改成功后保存,然后进行下一步操作。
下一步,我们进入控制器,首先,我们需要获取到我们想删除文件的路径,这里我就不展示了,大家都应该知道怎么获取的,下面这个示例,我是直接把路径写出来的,方便大伙了解。
$data = '/uploads/2018-08-14/file/1491628685130.zip';
$re = Storage::delete($data);
dd($re);
打印出来的值应为 true ,如果是显示 false 的话,那么请检查你的目录是否存在该文件,其次就是上面的配置文件修改的代码是否写错,再之就是控制器里获取的路径是否正确。
补充,如果想删除多个文件,那么在delete里面以数组的形式写就可以了。
$data = '/uploads/2018-08-14/file/1491628685130.zip';
$photo = '/uploads/2018-08-14/photo/1491628669760.jpg';
$re = Storage::delete([$data, $photo]);
dd($re);