图像上传Laravel 5.2:尝试获取非对象的属性

时间:2016-04-22 04:44:01

标签: php laravel image-uploading laravel-5.2

我正在尝试使用移动临时文件的方法上传图片,并仅使用路径在我的索引页面上显示。

问题在于:

ErrorException in ProductController.php line 69: Trying to get property of non-object

在我的控制器中包含错误行:

public function store(Request $request)
{
    $product=Request::all();
    Product::create($product);


    $imageName = $product->id_prod . '.' . 
        $request->file('images')->getClientOriginalExtension();

    $request->file('images')->move(
        base_path() . '/public/images/catalog/', $imageName
    );  

    return redirect('product');
}

这是数据库,文件已经上传到临时文件夹,但文件无法移动。我正在使用Laravel 5.2,这是我第一次上传文件。并且有人可以向我解释为什么这个可能是错误。

抱歉我的语法不好。

Images

1 个答案:

答案 0 :(得分:1)

您可以尝试这样:

public function store(Request $request)
{
    $product = $request->all();

    $picture = '';

    if ($request->hasFile('images')) {
        $file = $request->file('images');
        $filename = $file->getClientOriginalName();
        $extension = $file->getClientOriginalExtension();
        $picture = $product['id_prod'] . '.' . $extension;
        $destinationPath = base_path() . '/public/images/catalog/';
        $request->file('images')->move($destinationPath, $picture);
    }

    if (!empty($product['images'])) {
        $product['images'] = $picture;
    } else {
        unset($product['images']);
    }


    Product::create($product);

    return redirect('/product');
}