如何从laravel的images文件夹中删除我的图像?

时间:2019-04-15 10:52:17

标签: php laravel image unlink

在我的编辑详细信息页面中,有一个图像字段,我希望当我上传新图像时,旧照片将从图像文件夹中删除,新照片也将上传,并且如果我未上传图片(而不是提交期间),则不会产生错误

这是我的图片上传代码

$file = $request->file('file');
$name = time() . $file->getClientOriginalName();
$file->move('uploads/images', $name);
$employee->file = $name;
$employee->save();

如何取消链接?

3 个答案:

答案 0 :(得分:1)

如果您要更新模型,则可以删除旧文件并上传新文件(如果提供的话):

if ($request->hasFile('file')) {
    Storage::delete($employee->file); // If $file is path to old image

    $employee->file = $request->file('file')->store('name-of-folder');
}

答案 1 :(得分:-1)

我们可以在php中使用unlink

但是,如果要使用Laravel方法,请改用File :: delete()方法。

//删除单个文件

use File;
File::delete($filename);

//删除多个文件

File::delete($file1, $file2, $file3);

//删除文件数组

$files = array($file1, $file2);
File::delete($files);

注意:$ filename包含完整路径和图像名称,例如['https://www.example.com/images/image.jpg']

答案 2 :(得分:-1)

如果此代码存在,您可以使用unlink删除以前的图像文件:

if($request->hasFile('file')){
    if(file_exists(public_path("your image url"))){
        unlink(public_path("your image url"));
    };
    UploadImage($request)
}

和UploadImage()定义为:

private function UploadImage($request){
    $file = $request->file('file');
    $name = time() . $file->getClientOriginalName();
    $file->move('uploads/images', $name);
    $employee->file = $name;
    $employee->save();
}