Я использую пакет Image Intervention в Laravel и не могу отобразить свое изображение профиля. Проблема в том, что браузер не может загрузить ресурс
localhost:8000/uploads etc.
Все файлы сохраняются в общей папке:
public/uploads
Мой взгляд:
<div class="row">
<div class="col-md-2 ">
<img src="uploads/{{ $user->avatar }}">
</div>
</div>
контроллер:
class UserController extends Controller
{
public function profile()
{
return view ('user.profile', array('user'=>Auth::user()));
}
public function update(Request $request)
{
if($request->hasFile('avatar'))
{
$avatar = $request->file('avatar');
$filename = time() . '.' . $avatar->getClientOriginalExtension();
Image::make($avatar)->resize(300, 300)->save(public_path('/uploads/avatar' . $filename));
$user = Auth::user();
$user->avatar = $filename;
$user->save();
}
return view('user.profile',array('user'=>Auth::user()));
}
}
Я использую Windows и вижу, что эти файлы сохранены в моей папке public / uploads, но я не могу отобразить его
С уважением
В вашем классе контроллера измените эту строку:
$user->avatar = $filename;
к этому:
$user->avatar = 'avatar' . $filename;
Когда вы сохраните изображение, добавьте /
после «загрузки / аватара»:
save(public_path('/uploads/avatar/' . $filename));
Это должно решить проблему именования. Затем в вашем HTML добавьте «avatar /» после «uploads /», так как вы сохраняете в папку «upload / avatar».
Тогда ваш взгляд будет выглядеть так:
<div class="row">
<div class="col-md-2 ">
<img src="uploads/avatar/{{ $user->avatar }}">
</div>
</div>