Laravel - 无法加载资源

时间:2017-01-17 17:54:32

标签: php laravel

我在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中,但我无法显示它

此致

2 个答案:

答案 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;