2016-04-22 77 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作爲請求,因爲名稱已在使用中' –

相關問題