我在Laravel中使用Image Intervention软件包,但我无法显示我的个人资料图片。问题是浏览器无法加载资源
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中,但我无法显示它
此致
答案 0 :(得分:2)
保存图片时,请在“上传/头像”之后添加/
:
save(public_path('/uploads/avatar/' . $filename));
这应该解决命名问题。然后在您的HTML中,在“uploads /”之后添加“avatar /”,当您保存到“upload / avatar”文件夹时。
然后你的观点会是这样的:
<div class="row">
<div class="col-md-2 ">
<img src="uploads/avatar/{{ $user->avatar }}">
</div>
</div>
答案 1 :(得分:1)
在你的控制器类中改变这一行:
$user->avatar = $filename;
到此:
$user->avatar = 'avatar' . $filename;