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



我有 laravel5.4 application.i a application.i我想从我的上传文件夹中删除未使用的 images/fimage 数据库。

例如:我的上传文件夹中有50张图像用于用户配置文件,但其中一些图像不用于任何用户。我认为他从Frontend中删除或更新了他的图像。

是的,我知道我们需要在用户更新或一次删除配置文件图片时删除文件,也从上传文件夹中删除。但是我的应用程序从很多时间运行,我想使用脚本不是手动beakace删除未使用的文件,我很多文件,因此很难手动检查和删除文件。任何人都可以帮助我创建文件夹中的任何函数。

对不起,我的英语不好。

我在我的admincontroller中使用类似的东西来删除图像。
也许您需要更改路径或扩展

public function deleteUnusedImages()
{
    $file_types = [
        '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
        }
    }
}

最新更新