2016-04-22 78 views
1

我试图使用移动临时文件的方法上传图片,并仅在路径中的索引页上显示图片。图片上传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

你可以尝试这样的:

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'); 
} 
+0

谢谢,我觉得它的假设是工作,但另一个错误:'调用未定义的方法照亮的\ Support \外立面\支持:: all()' –

+0

'使用Illuminate \ Http \ Request;'你在控制器中看到类似的东西吗? –

+0

我已添加但不能使用Illuminate \ Http \ Request作为请求,因为名称已在使用中' –

相关问题