1

在 laravel 4.2 上使用干预服务提供者上传图像时遇到一些问题

错误 - 无法将图像数据写入路径。

-在google和stackoverflow上搜索并试图解决,但问题仍未解决。可能该目录没有处于可写模式。如何使用 git bash 和 Cygwin 终端在 Windows 7 中制作目录“public/img/products/”可写模块

我的产品控制器创建方法 -

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

2 回答 2

2

虽然这是一个旧线程。
Windows 文件名不能有“:”(冒号)作为字符。而是使用“-”(破折号)或“_”(下划线)。即使是空格(“”)也可以。
例子:

$filename = date('Y-m-d-H_i_s')."-".$image->getClientOriginalName();

或者

$filename = date('Y-m-d-H i s')."-".$image->getClientOriginalName();
于 2016-03-28T10:13:46.610 回答
0

您应该更改目录的访问权限。

sudo chmod -R 777 public/img/products

于 2015-11-16T22:17:07.980 回答