我目前正在使用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