删除使用$ request-> file->存储上传的文件

时间:2018-01-15 06:16:17

标签: laravel laravel-5.5

出于某种原因,我无法使用$ 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]);

我们在这里看到我检查是否有旧的头像,然后我想删除它。然后我上传下一个并使用新路径更新数据库。

1 个答案:

答案 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);
            }