出于某种原因,我无法使用$ request-> file-> store删除我上传的文件。
我尝试了\File::delete
,\File::Delete
,\Storage::Delete
和\Storage::delete
。我想避免使用unlink
,因为这不是laravel方式。
请你帮帮我?
这是我的代码:
if ($user->avatar_path) {
// delete old one
\File::delete(app_path().$avatar_path);
}
$avatar_path = $request->file('avatar')->store('uploads/users/'.$user->id.'/avatar', 'public');
$user->update($request->except('avatar') + ['avatar_path' => $avatar_path]);
我们在这里看到我检查是否有旧的头像,然后我想删除它。然后我上传下一个并使用新路径更新数据库。
答案 0 :(得分:0)
终于解决了这个问题。我不得不使用Storage::disk('public')->delete($old_avatar_path);
。最终代码:
if ($request->has('avatar')) {
$old_avatar_path = $user->avatar_path;
$avatar_path = $request->file('avatar')->store('avatars', 'public');
$user->update($request->except('avatar') + ['avatar_path' => $avatar_path]);
if ($old_avatar_path) {
// delete old one
Storage::disk('public')->delete($old_avatar_path);
}