文件保存在数据库中长这样:
输入是一个元素为目录名的数组
具体代码如下:
<?php
// 递归获取文件夹下面所有的文件, 不包括文件夹, 存入 objects 列表中
protected function traversal_folder($dirs, $objects=[])
{
$userId = $this->getUserId();
foreach ($dirs as $key => $value) {
$suffix = pathinfo($value, PATHINFO_EXTENSION);
// 根据是否有后缀判断是文件还是文件夹
if ($suffix == '') {
// 如果是文件夹则获取该文件夹下所有文件, 包括文件夹
$result = Db::name('asset')
->where('user_id', $userId)
->where('file_path', $value)
->select();
// 将获取到的文件列表重新拼接成带路径的文件名并存入文件数组中
$files = [];
foreach ($result as $k => $file) {
$files[] = $file['file_path'] . '/' . $file['filename'];
}
// 文件夹传入递归函数继续获取文件
$objects = $this->traversal_folder($files);
} else {
// 将文件名添加到oss待删除列表中
$objects[] = $value;
}
}
return $objects;
}
看到这里, 有疑问请指出!