从上传文件夹laravel中删除未使用的图像/文件

时间:2017-12-20 06:14:42

标签: laravel laravel-5.4

我有 laravel5.4 应用程序。我想从我的上传文件夹中删除未使用的图片/文件,这在我的数据库中不可用。

例如: 我的上传文件夹中有50张图片用于用户个人资料,但有些图片不适用于任何用户。我认为他从前端删除或更新了他的图片。

是的我知道我们需要代码删除文件,一次用户更新或删除个人资料图片也从上传文件夹删除。但我的应用程序运行很多次,我想删除未使用的文件使用脚本而不是手动因为我有很多文件,所以很难手动检查和删除文件。你可以帮我创建任何从文件夹中删除文件的功能。

抱歉我的英语不好。

1 个答案:

答案 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
        }
    }
}