2017-08-09 99 views
0

我使用Laravel從郵遞員獲取請求文件,但似乎Laravel無法識別我發佈的文件。以下是我的代碼:Laravel:呼叫成員函數存儲()null

namespace App\Http\Controllers; 
use App\Product; 
use Illuminate\Http\Request; 

class ProductImageController 
{ 
public function update(Request $request, $id) 
    { 
     $path = $request->file('file')->store('images'); 
     $product = Product::find($id); 
     $product->img_url = $path; 
     return $product->save() ? 
      response(["error_code" => 0, $product]) : 
      response(["error_code" => 1]); 
    } 
} 

Postman request

enter image description here

+0

你能粘貼你的HTML代碼嗎?我認爲您忘記了窗體上的multipart =「form/data」屬性,或者拼錯了輸入名稱。 – tete0148

+1

@ tete0148這是郵遞員的要求。閱讀OP的問題 – Thamilan

+0

確保文件大小不超過您的PHP上傳大小限制。另外,請嘗試刪除「Content-Type」標題。 – patricus

回答

0

添加到您的方法,並檢查是否有任何錯誤,並檢查是否表單數據在郵遞員選擇,小心明確的內容類型標題。更好 - 不要設置它的價值,郵差聰明,足以填補你的頭。但是,如果你想設置的內容類型:多重/ form-data的 - 不要忘記boudary領域:

public function update(Request $request, $id) 
{ 
    $this->validate($request, [ 
     'file' => 'required|file' 
    ]); 
... 
0

我想你可以試試這個:

if ($request->hasFile('file')) { 
      $product->img_url = $request->file('file')->store('images'); 
     } 

等詳細信息請按照此link

希望這項工作爲您服務!