Laravel 5干预无法将图像数据写入路径

时间:2015-10-16 18:47:52

标签: php laravel-5 intervention

这是我的控制器

public function store()
{ 
    $data = Request::all();

    $rules = [
                'password'   => 'required|confirmed|min:3',
                'avatar'     => 'required|image|mimes:jpeg,png,bmp',
                'email'      => 'required|email|unique:users',
                'first_name' => 'required',
                'last_name'  => 'required',
                'level'      => 'required'
            ];

    $validator = validator::make($data, $rules);

    if($validator->passes()){
        if(!file_exists(public_path("assets/uploads".date('/Y/m/d/').$data['avatar']->getClientOriginalName()))){
            $path = public_path("assets/uploads".date('/Y/m/d/').$data['avatar']->getClientOriginalName());
            Image::make($data['avatar']->getRealPath())->resize(200, 200)->save($path);
        }
    }
}

这是我的错误

  

无法将图像数据写入路径(/var/www/html/rnd/public/assets/uploads/2015/10/16/tes.jpg)

2015文件夹中没有uploads文件夹,因此如果文件夹不存在,它应自动创建。

请更正我的代码有什么问题?

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

请确保您要写入的文件夹存在,并使用正确的所有者www-data:www-data并获得正确的权限,请再次牢记。

Image::make($data['avatar']->getRealPath())->resize(200, 200)->save($path);

如果文件夹不存在,上面的代码不会自动创建文件夹,如开发人员所说

https://github.com/Intervention/image/issues/56