【发布时间】:2020-08-22 13:30:30
【问题描述】:
我正在尝试在更新新图像时从存储中删除现有图像。 但是每次插入新图像时都会保留以前的图像。
当我从数据库中删除图像以取消链接时,我得到了完整的 url 即
http://127.0.0.1:8000/teacger-image/1598097262-85508.jpg
虽然只有teacher-image/1598097262-85508.jpg
已存储在数据库中。
图片删除功能
public function deleteImageFromStorage($value)
{
if (!empty($value)) {
File::delete('public/' . $value);
}
}
当更新过程中有图像发布时,我已经在控制器中调用了该方法。
更新方法包括
if ($request->hasFile('image')) {
$teacher->deleteImageFromStorage($teacher->image);
$file = $request->file('image');
$filename = time() . '-' . mt_rand(0, 100000) . '.' . $file->getClientOriginalExtension();
$path = $file->storeAs('teacher-image', $filename);
$teacher->image = $path;
}
我也使用过Storage::delete() 和unlink,但它们似乎都不起作用。
帮助
【问题讨论】:
-
能否提供更新方法的代码?
-
我已经更新了代码 Adrian sir
-
您是否将图像保存在公用文件夹中?
-
我有 public/teacger-image 和那里的文件
标签: laravel file storage unlink