How to Delete Images from Public/Images Folder in

2020-07-18 06:16发布

how to delete images file from public/images folder in laravel 5 ??

i found some example from this site, but i know they are just using the file name in their record table, but i'm using something like URL e.g localhost/project/uploads/filename.jpg on my record table. so if i tried like this :

    $image_path = $data->image;  // the value is : localhost/project/image/filename.format
    if(File::exists($image_path)) {
        File::delete($image_path);
    }

the file is not deleted

help pls, thanks

5条回答
Summer. ? 凉城
2楼-- · 2020-07-18 06:37
public function destroy($id)
    {   

        $imagePath = YourModelName::select('image')->where('id', $id)->first();

         $filePath = $imagePath->image;

                   if (file_exists($filePath)) {

                   unlink($filePath);

           YourModelName::where('id', $id)->delete();

        }else{

         YourModelName::where('id', $id)->delete();
        }


    }
查看更多
乱世女痞
3楼-- · 2020-07-18 06:42

I had the same problem today but now the files are deleting by this code

 $image_path = $data->image;  
    if(file_exists($image_path)) {
        File::delete($image_path);
    }

basically the poblem for me was the if condition didn't returned somthing true. and the statement didnt executed.

btw I'm storing my file in public folder in laravel

hope this helps someone.

查看更多
干净又极端
4楼-- · 2020-07-18 06:43

call this function and pass two parameter $filepath = path where your file exist $filename = name of your file

public static function UnlinkImage($filepath,$fileName)
{
    $old_image = $filepath.$fileName;
    if (file_exists($old_image)) {
       @unlink($old_image);
    }
}
查看更多
Animai°情兽
5楼-- · 2020-07-18 06:54

If you want to delete image from your server, you have to reference location of file in directory server, means you could not reference by url link to delete it.

Commonly, Laravel 5 file is locate in public folder.

Example: your files are located in public/images

$image_path = "/images/filename.ext";  // Value is not URL but directory file path
if(File::exists($image_path)) {
    File::delete($image_path);
}

If I can delete image from server by reference URL then Google is the first target :)

查看更多
Lonely孤独者°
6楼-- · 2020-07-18 06:56

You can use the normal PHP delete file keyword ( @unlink )

$image_path = "the name of your image path here/".$request->Image; 

 if (file_exists($image_path)) {

       @unlink($image_path);

   }
查看更多
登录 后发表回答