Невозможно изменить изображение профиля Laravel

Я могу сохранить изображение в нужном месте, но не могу его просмотреть. Когда страница перезагружается, появляется то же изображение по умолчанию. Изображение по умолчанию никогда не меняется на желаемое изображение.

Мой файл контроллера (UserController.php):

     public function update_avatar(Request $request)
    {

      if($request->hasFile('avatar'))

      {

            $avatar = $request->file('avatar');
            $filename = time(). '.' . $avatar->getClientOriginalExtension();
            Image::make($avatar)->save(public_path('/src/uploads/avatars/' . $filename));


      }

      return redirect()->route('dashboard');
    }




}

Мой маршрутный файл:

Route::post('/dashboard',[
                'uses'=>'UserController@update_avatar',

                ]);

Мой вид Файл:

<form action="/dashboard" method="post" enctype="multipart/form-data">
      <div id="mySidenav" class="sidenav">
  <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a>

    <input type="file" name="avatar" class="btn btn-sm btn-primary col-md-5"  >

    <input type="submit" class="pull-right btn btn-sm btn-primary " value="submit">
    <input type="hidden" value="{{Session::token() }}" name="_token">
    <a href="#">Remove</a>

    </div>


        <div id="main">
<span style="font-size:30px;cursor:pointer" onclick="openNav()"><img src="download.jpg" class="img-circle img-responsive" alt="Placeholder image"></span>
</div>

      </form>

2 ответа

Изменить пользователя с атрибутом аватара в соответствии с вашими потребностями

public function update_avatar(Request $request)
{
    if($request->hasFile('avatar'))
    {
        $avatar = $request->file('avatar');
        $path = '/src/uploads/avatars/';
        $filename = time(). '.' . $avatar->getClientOriginalExtension();
        Image::make($avatar)->save(public_path($path . $filename));
        $request->user()->avatar = $filename;
        $request->user()->save();
    }
    return redirect()->route('dashboard');
}

Вы не сохраняете загруженное изображение в базу данных? Вы загружаете изображения только в специальную папку изображений, но не сохраняете ее в базу данных? Если вы хотите, вы можете сделать это в вашем контроллере:

    <?php

        public function update_avatar(Request $request){
            $avatarURI = null;
            if($request->hasFile('avatar')) {

                $avatar     = $request->file('avatar');
                $filename   = time(). '.' . $avatar->getClientOriginalExtension();
                Image::make($avatar)->save(public_path('/src/uploads/avatars/' . $filename));
                $avatarURI  = "src/uploads/{$filename}";
                User::update();
            }

            // YOU MAY NEED TO PERSIST THIS IN THE DATABASE
            // TO UPDATE THE avatar:

            $usr = new \App\User();
            $usr->update(['avatar' => $avatarURI, 'id'=>$userID]); //<== ID OF THE USER TO BE UPDATED...
            return redirect()->route('dashboard', ['imgURI'=>$avatarURI, 'user'=>$usr]);
        }
Другие вопросы по тегам