在我的编辑详细信息页面中,有一个图像字段,我希望当我上传新图像时,旧照片将从图像文件夹中删除,新照片也将上传,并且如果我未上传图片(而不是提交期间),则不会产生错误>
这是我的图片上传代码
$file = $request->file('file');
$name = time() . $file->getClientOriginalName();
$file->move('uploads/images', $name);
$employee->file = $name;
$employee->save();
如何取消链接?
答案 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();
}