2016-06-07 77 views
0

$請求文件還給我exception-

<form action="{{url('/addnews')}}" class="reviews-form" role="form" 
<input type="file" name="file"> 
<div class="form-group"> 
<button type="submit" class="btn btn-primary">Submit</button> 
</div> 
</form> 

「上的空調用一個成員函數移動()」 中的控制器:

public function AddData(Request $request) 
{ 
$file=$request->file('file'); 
$file->move('images',$file->getClientOrginalName()); 
} 

回答

3
  1. 定義方法:POST,您可以使用GET方法(不發送文件,而無需如GET

  2. 定義加密類型參數去通知你發送文件

網絡服務器,它的作用確切的定義

修正形式:

<form action="{{url('/addnews')}}" method="post" enctype="multipart/form-data" class="reviews-form" role="form"> 
    <input type="file" name="file"> 
    <div class="form-group"> 
    <button type="submit" class="btn btn-primary">Submit</button> 
    </div> 
</form> 

我希望你在路由器文件中定義的POST /addnews指您的控制器addData操作。

我建議使用命名路線來使您的代碼更加準確,使其成爲約定。從addData =行動

改變名稱>創建,

,讓您的routes.php文件文件中有這樣的事情:

Route::post('/news', ['as' => 'news.add', 'uses' => '[email protected]']); 

形式:

<form action="{{route('news.add')}}" method="post" enctype="multipart/form-data" class="reviews-form" role="form"> 
    <input type="file" name="file"> 
    <div class="form-group"> 
    <button type="submit" class="btn btn-primary">Submit</button> 
    </div> 
</form> 
+1

是的,我做到了,這是enctype promblem。感謝 –

+1

郵政大+1,我錯過了。 – ceejayoz

3

<form>標籤需要enctype="multipart/form-data"(如以及method="post")。如果沒有enctype,請求中不會包含任何文件數據,從而導致$request->file('file')爲空。

你也應該檢查$request->file('file')是在嘗試移動它之前的一個文件(Laravel的驗證類具有專門針對此的file規則)。你的一些用戶肯定會忽視上傳文件,應該收到一個有用的驗證錯誤,而不是一個例外。

+0

感謝you.It是解決我的問題 –