在我的编辑详细信息页面中有一个图像字段,我希望当我上传新图像时旧照片将从图像文件夹中删除并且新照片将上传,如果我没有上传图片而不是在提交期间没有错误将生成
这是我的图片上传代码
$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();
}