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

问题描述 投票:2回答:1

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

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

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

对不起,我的英语不好。

laravel laravel-5.4
1个回答
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
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.