ti shohagh
ti shohagh

Reputation: 11

how to update file in laravel

I update two data one text data and two file data but it's not working this. How to update file?

My code is:

public function update(Request $request){
    $news=new News();
    $news->newstitle=$request->newstitle;
    $url1=$this->imageExistStatus1($request);
    $news->save();
    return redirect()->back()->with('sms','insert successful');
}

public  function imageExistStatus1($request){
    $newsByid1=News::where('id',$request->newsid)->first();
    $fimage1=$request->file('imageone');

    if ($fimage1) {
        unlink($newsByid1->imageone)
        $thisName1= $fimage1->getClientOriginalName();
        $uplodePath1='public/up/';
        $fimage1->move($uplodePath1,$thisName1);
        $url1=$uplodePath1.$thisName1;
    }else{
        $url1=$newsByid1->imageone;
    }

    return $url1;
}

Upvotes: 1

Views: 552

Answers (1)

Amin Jafari
Amin Jafari

Reputation: 429

First, change your code to the following

   public function update(Request $request, $id)
{
    $news = News::findOrFail($id);
    $news->newstitle = $request->newstitle;
    $fimage1 = $request->file('imageone');
    if ($fimage1) {
        unlink($news->imageone);
        $news->imageone = $this->imageExistStatus1($request, $id);
    }
    $news->save();
    return redirect()->back()->with('sms', 'insert successful');

}

public function imageExistStatus1($request)
{
    $fimage1 = $request->file('imageone');
    $thisName1 = $fimage1->getClientOriginalName();
    $uplodePath1 = 'public/up/';
    $fimage1->move($uplodePath1, $thisName1);
    $url1 = $uplodePath1 . $thisName1;

    return $url1;

}

I hope your problem is resolved

tip:

Thanks to "Oluwatobi Samuel Omisakin".

please use the route:

Route::patch('/news/{id}/update', 'NewsController@update')

Upvotes: 1

Related Questions