我正在使用Laravel 4.我不知道为什么在一切似乎都正确时我会收到此错误。此外,产品未更新到数据库。
无法将图像数据写入路径(E:\ wamp \ www / E:\ wamp \ www / img / products / 1405482517.jpg)
的ProductsController
public function postCreate()
{
$validator = Validator::make(Input::all(), Products::$rules);
if($validator->passes())
{
$products = new Products();
$products->category_id = Input::get('category_id');
$products->title = Input::get('title');
$products->description = Input::get('descroption');
$products->price = Input::get('price');
$image = Input::file('image');
$filename = time() . '.' . $image->getClientOriginalExtension();
$path = public_path('img/products/' . $filename);
Image::make($image->getRealPath())->resize(468, 249)->save(public_path($path));
$products->image = 'img/products/'.$filename;
$products->save();
return Redirect::to('admin/products')
->with('message', 'Products added success');
}else
return Redirect::to('admin/products')
->with('message', 'Something went wrong')
->withErrors($validator)
->withInput();
}
答案 0 :(得分:1)
确保您拥有public/img/products
文件夹的正确权限,例如:您终端中的chmod 775 public/image/products
。
另一件事是,你正在做两次public_path(),这导致你的代码试图保存到:
E:\wamp\www/E:\wamp\www/img/products/1405482517.jpg
而不是
E:\wamp\www/img/products/1405482517.jpg
因此错误消息:"无法将图像数据写入路径( E:\ wamp \ www / E:\ wamp \ www /img/products/1405482517.jpg)"
要解决此问题,这是导致问题的代码部分:
$path = public_path('img/products/' . $filename);
Image::make($image->getRealPath())->resize(468, 249)->save(public_path($path));
您必须尝试删除上面两个public_path()
中的一个。
当然,您没有在数据库中看到您的产品,因为在$products->save();
执行之前会抛出异常。