dongyue8640 2019-01-26 22:52
浏览 33

在laravel上传新内容后如何删除旧头像?

I was trying to delete old avatar after uploading new avatar. Just I couldn't find solution. I am new to laravel5, Could you help me? I am using a project from github. please look at "munafio cubetalk" on github. maybe I need to change something more. It doesn't delete user avatar also when user deletes his account.

    public function s_general(Request $request){
    $this->validate($request,[
        'username' => 'required|min:3|max:50',
        'avatar' => 'nullable|image|mimes:jpeg,png,jpg|max:1024',
        'fullname' => 'required',
        'email' => 'required|email'
    ]);
    if ($request['username'] == Auth::user()->username &&$request['fullname'] == Auth::user()->name && $request['email'] == Auth::user()->email && !$request->hasFile('avatar')) {
        return redirect()->back()->with('general_msg', Lang::get('trans.noChanges_MSG'));
    }else{
        $avatar = $request->file('avatar');
        if ($request->hasFile('avatar')) {
            $avatar_ext = $avatar->getClientOriginalExtension();
            $avatar_name = rand(9,999999999)+time().".".$avatar_ext;
            $avatar_new = $avatar->storeAs("avatar",$avatar_name);
        }else{
            $avatar_name = Auth::user()->avatar;
        }


        $update_general = User::where('uid',Auth::user()->uid)->update(['username' => $request['username'],'name' => $request['fullname'], 'email' => $request['email'],'avatar' => $avatar_name]);
        return redirect()->back()->with('general_msg', Lang::get('trans.changes_saved'));
    }

}
  • 写回答

2条回答 默认 最新

  • dongxian7194 2019-01-27 05:37
    关注

    You can use laravel delete method to do that, make sure you import use Illuminate\Support\Facades\Storage; top of your controller class.

    public function s_general(Request $request){
    $this->validate($request,[
        'username' => 'required|min:3|max:50',
        'avatar' => 'nullable|image|mimes:jpeg,png,jpg|max:1024',
        'fullname' => 'required',
        'email' => 'required|email'
    ]);
    if ($request['username'] == Auth::user()->username &&$request['fullname'] == Auth::user()->name && $request['email'] == Auth::user()->email && !$request->hasFile('avatar')) {
        return redirect()->back()->with('general_msg', Lang::get('trans.noChanges_MSG'));
    }else{
        $avatar = $request->file('avatar');
        if ($request->hasFile('avatar')) {
    
            // update your code in here
            $avatar_name = Auth::user()->avatar;
            Storage::delete($avatar_name);
    
            $avatar_ext = $avatar->getClientOriginalExtension();
            $avatar_name = rand(9,999999999)+time().".".$avatar_ext;
            $avatar_new = $avatar->storeAs("avatar",$avatar_name);
        }else{
            $avatar_name = Auth::user()->avatar;
        }
    
    
        $update_general = User::where('uid',Auth::user()->uid)->update(['username' => $request['username'],'name' => $request['fullname'], 'email' => $request['email'],'avatar' => $avatar_name]);
        return redirect()->back()->with('general_msg', Lang::get('trans.changes_saved'));
    }
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度