文件保存在數據庫中長這樣:
輸入是一個元素爲目錄名的數組
具體代碼如下:
<?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;
}
看到這裏, 有疑問請指出!