Laravel '无法将图像数据写入path& #39;错误


Laravel "Can't write image data to path" error

我目前正在使用Laravel中的干预图像包。

我想要一个用户有能力上传一个标志。到目前为止,我有以下内容:

public function postUpdateLogo($id) {
    if(Input::file())
    {
        $image = Input::file('logo');
        $filename  = time() . '.' . $image->getClientOriginalExtension();
        'Image::make($image->getRealPath())
                  ->resize(300, 300)
                  ->save('user/'. $id . '/' . $filename);
        $user->image = $filename;
        $user->save();
    }
}

但是我在提交时得到的错误是:

notritableexception in image .php第143行:不能写入图像数据路径(用户/1/1439491280.png)

我也遇到了这个问题,正如Stuard建议的那样,您可能希望在公共文件夹中编写。

$filename  = time() . '.' . $image->getClientOriginalExtension();
$path = public_path("user/".$id."/".$filename);
'Image::make($image->getRealPath())->resize(300, 300)->save($path);

其次,我设法解决了我的问题(ubuntu, apache, laravel 5安装),通过使apache成为公共文件夹的所有者,例如:

sudo chown -R www-data:www-data /home/youruser/www/dev.site.com/public/user

添加正确的文件夹权限:

~$ sudo chmod 755 -R user

可能不是一个完美的解决方案,但会让你开始。

编辑-可能的第二个选项:

检查公用文件夹的当前组所有者,然后将apache用户(www-data)添加到该组可能是第二个选择(希望大师同意):

sudo adduser www-data theownergroup