在laravel 4.2上使用干预服务提供商上传图像时遇到一些问题
错误 - 无法将图像数据写入路径。
- 搜索google和stackoverflow并尝试解决但问题仍未解决。可能该目录没有可写的mod。我该如何制作指令&public; / img / products /' Windows 7中使用git bash和Cygwin终端的可写mod
我的产品控制器创建方法 -
public function postCreate() {
$validator = Validator::make(Input::all(), Product::$rules);
if ($validator->passes()) {
$product = new Product;
$product->category_id = Input::get('category_id');
$product->title = Input::get('title');
$product->description = Input::get('description');
$product->price = Input::get('price');
$image = Input::file('image');
$filename = date('Y-m-d-H:i:s')."-".$image->getClientOriginalName();
$path = public_path('img/products/' . $filename);
Image::make($image->getRealPath())->resize(468, 249)->save($path);
$product->image = 'img/products/';
$product->save();
return Redirect::to('admin/products/index')
->with('message', 'Product Created');
}
return Redirect::to('admin/products/index')
->with('message', 'Something went wrong')
->withErrors($validator)
->withInput();
}
答案 0 :(得分:2)
虽然这是一个老话题
Windows文件名不得包含":#34;(冒号)作为字符。而是使用" - "(破折号)或" _"(下划线)。即使是空间("")也没关系。
例如:
Hashids::encode(123456);
或
$filename = date('Y-m-d-H_i_s')."-".$image->getClientOriginalName();
答案 1 :(得分:0)
您应该更改目录的访问权限。
sudo chmod -R 777 public/img/products