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

How do I remove my image from images folder in laravel?

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

这是我的图片上传代码

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

如何取消链接?

如果您正在更新模型,您可以删除旧文件并上传新文件(如果提供):

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

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

我们可以在 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']

您可以通过以下代码使用取消链接删除以前的图像文件(如果存在):

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();
}