2017-01-01 8 views
1

私のアプリにファイルをアップロードしたいと思います。 これはブレード・ファイルです。Laravel 5.3を使用してファイルをアップロードする

<form action="/fileUploader " files="true" method="post" role="form" name="file" id="chan" > 
     <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
     <div class="panel panel-default"> 

      <label>Please Select a File to Upload</label> 
      <input type="image"> 
      <button type="submit" name ="Upload_File">Upload File</button> 
     </div> 
    </form> 

これはこれは私がchannelController.phpライン48にFatalThrowableErrorと呼ばれるエラーを取得しています

Route::get('/fileUploader', '[email protected]'); 
Route::post('/fileUploader', '[email protected]'); 

web.phpファイルです

public function viewFile() 
{ 
    return View::make('/fileUploader'); 
} 

    public function showfileupload(Request $request) 
    { 
     $file = $request -> file('image'); 
     // show the file name 
     echo 'File Name : '.$file->getClientOriginalName(); 
     echo '<br>'; 

     // show file extensions 
     echo 'File Extensions : '.$file->getClientOriginalExtension(); 
     echo '<br>'; 

     // show file path 
     echo 'File Path : '.$file->getRealPath(); 
     echo '<br>'; 

     // show file size 
     echo 'File Size : '.$file->getSize(); 
     echo '<br>'; 

     // show file mime type 
     echo 'File Mime Type : '.$file->getMimeType(); 
     echo '<br>'; 

     // move uploaded File 
     $destinationPath = 'uploads'; 
     $file->move($destinationPath,$file->getClientOriginalName()); 
    } 

私のコントローラファイルです: コールnull上のメンバ関数getClientOriginalName()に渡します。

どのように私はこの問題を解決することができ

答えて

1

ほとんどの場合、あなたはメソッド呼び出ししようとしている - それはヌルですので、存在しないオブジェクトに - getClientOriginalName()を。それは、あなたが見ているエラーメッセージを表示します。

理由はわかりませんが、後ろ向きに作業を開始できます。 hasFile()メソッドでifステートメントを使用して、move()に試行する前にファイルが実際に要求に存在することを確認してみましょう。

if ($request->hasFile('image')) { 
    $file->move($destinationPath,$file->getClientOriginalName()); 
} 

上記を実装する場合、エラーはまだありますか?

ここにはLaravel 5.3 Docs on file uploadsがあります。それはあなたにいくつかのアイデアを与えるかもしれません。あなたは、ユーザーがファイルを投稿しているとhasFile()はまだブール値FALSEを返していることを発見している場合

、あなたは私たちが上がらないことを確認するためにphp.iniファイルに掘りに行くとPost_max_sizeまたはupload_max_size valuesを見てみたいことがあり大量のアップロードをブロックしています。

0

VIEW

{!! Form::open(['route'=>'fileUploader', 'id'=>'chan', 'files' => true])!!} 

     <div class="panel panel-default"> 

      <label>Please Select a File to Upload</label> 
       <input type="file" name="image"> 
      <button type="submit">Upload File</button> 
     </div> 
{!! Form::close()!!} 

ROUTES

Route::get('/fileUploader', '[email protected]'); 

Route::post('fileUploader', array(
    'as' => 'fileUploader', 
    'uses' => '[email protected]', 
)); 

CONTROLLERコピーしてください

public function showfileupload(Request $request){ 
    $file = $request -> file('image'); 
    dd($file); // This work well for me and return information about the image 
} 

と過去!私はそれが動作することを願って、私にエラーと結果を知らせてください!

+0

null値を取得しています – sara99

+0

okあなたにテストをさせてください –

+0

私の回答が更新されました –

関連する問題