在interventoin / laravel 4.2中面对图像上传错误

时间:2015-11-16 21:55:35

标签: php git bash laravel intervention

在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();
}

2 个答案:

答案 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