我有 laravel5.4 应用程序。我想从我的上传文件夹中删除未使用的图片/文件,这在我的数据库中不可用。
例如: 我的上传文件夹中有50张图片用于用户个人资料,但有些图片不适用于任何用户。我认为他从前端删除或更新了他的图片。
是的我知道我们需要代码删除文件,一次用户更新或删除个人资料图片也从上传文件夹删除。但我的应用程序运行很多次,我想删除未使用的文件使用脚本而不是手动因为我有很多文件,所以很难手动检查和删除文件。你可以帮我创建任何从文件夹中删除文件的功能。
抱歉我的英语不好。
答案 0 :(得分:3)
我在AdminController中使用类似的东西来点击按钮来删除图像 也许您需要更改路径
public function deleteUnusedImages()
{
$file_types = array(
'gif',
'jpg',
'jpeg',
'png'
);
$directory = public_path();
$files = File::allFiles($directory);
foreach ($files as $file)
{
$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if (in_array($ext, $file_types)) {
if(DB::table('users')->where('votes', '=', $file)->count())
continue; // continue if the picture is in use
echo 'removed' . basename($file)."<br />";
unlink($file); // delete if picture isn't in use
}
}
}