2017-07-19 61 views
0

控制器CSV不上傳使用laravel

public function uploadFile() 
{ 
     if(isset($_POST["uploadFile"])){ 
     $filePath = realpath($_FILES["file"]["tmp_name"]); //GETTING THE FULL PATH OF THE FILE WHICH WANTS TO BE SAVED INTO THE DB 
     $arr = []; 
      if (($handle = fopen($filePath, 'r')) !== FALSE){ 
       $i = 0; 
       while (($lineArray = fgetcsv($handle, 4000)) !== FALSE){ 
        for ($j=0; $j<count($lineArray); $j++){ 
         $arr[$i][$j] = $lineArray[$j]; 
        } $i++; 
       } fclose($handle); 
      } 
     $csv = array_slice($arr,1); 
     foreach($csv as $line){ 
      mysqli_query($mysqli, "INSERT INTO dialog(`eType`,`eVal`,`intent`,`reply`) VALUES('$line[0]','$line[1]','$line[2]','$line[3]')"); //FOR EACH LINE SAVE INTO THE DB 
     } 
     } 
} 

路線

Route::get('uploadFile', 'Chatbot\[email protected]'); 

查看到數據庫

<form method="post" action="{{action('AltHr\Chatbot\[email protected]')}}" enctype="multipart/form-data"> 
     <input type="file" name="file"> <br> 
     <button type="submit" name="uploadFile" class="btn alt-btn-black btn-xs alt-btn">UPLOAD FILE</button> 
</form> 

所以,它的我的第一個大Ÿ學習laravel,爲什麼我在RouteCollection.php

我想上傳一個CSV文件在表單到數據庫有此errror MethodNotAllowedHttpException有人可以告訴我。我在這裏做錯了什麼?

+3

爲POST請求插入你必須使用'路線:: POST'路由方法,而不是'Route :: get' –

+0

夥計們,現在我有這個錯誤「TokenMismatchException in VerifyCsrfToken.php」 – Rajveer

+0

請清除緩存,'php artisan緩存:明確' –

回答

3

您的途徑錯誤。上傳是POST請求,以便:

Route::post('uploadFile', 'Chatbot\[email protected]'); 
-1

真正的問題是:你爲什麼不使用口才或至少在QueryBuilder的在DB