2016-08-22 23 views
0

Ich benutze ng-Datei-Upload zum Hochladen von Datei und importieren Sie diese Datei in die Tabelle mit Ladedaten in Datei. Es funktioniert perfekt für Komma getrennt, aber ich möchte Datei als Semikolon getrennt importieren.unterstützt ng-Datei-Upload Semikolon getrennte CSV-Datei zum Importieren mit Laravel 5.2 & Angular?

mein vorderes Ende ist kantig und Back-End ist Laravel 5.2

Hier Winkel js

   $scope.uploadPic = function(file){ 
       console.log(Upload); 
       file.upload = Upload.upload({ 
        url: API_BASE_URL + "panelist/import-panelist", 
        data: { 
         file: file, 
         username: $scope.username, 
         upload_type:$scope.panelistimport.upload_type, 
         panelist_status:$scope.panelistimport.panelist_status, 
         panel_id:1 
        }, 
       }); 

       file.upload.then(function (response) { 
        $timeout(function() { 
         file.result = response.data; 
         console.log(file.result); 
        }); 
       }, function (response) { 
        if (response.status > 0) $scope.errorMsg = response.status + ': ' + response.data; 
       }, function (evt) { 
        // Math.min is to fix IE which reports 200% sometimes 
        file.progress = Math.min(100, parseInt(100.0 * evt.loaded/evt.total)); 
       }); 
      } 

in Laravel Controller -

public function importPanelistData(Request $request){ 


         if($request->file('file') && $request->input('panel_id')){ 
          $file = $request->file('file'); 
          $data1 = Array(); 
          $data1 = array('panel_id' => $request->input('panel_id'), 
            'upload_type' => $request->input('upload_type'), 
            'panelist_status' => $request->input('panelist_status') 
           ); 
          $originalName = $file->getClientOriginalName(); 
          $name = time() . '-' . $originalName; 
          $storage = 'upload'; 
          $path = $storage . '/csv'; 
          // Moves file to folder on server 
          $file->move($path, $name); 
          $importPanelist = $this->importPanelist($path, $name ,$data1); 
          return Response::json($importPanelist ? $this->makeResponse("Panelist Imported successfully.",$originalName) : 'No rows affected'); 
         } 

        } 


public function importPanelist($path, $name ,$extraFields = array()){ 

        $csv = $path . "/" . $name; 
        $query = "LOAD DATA LOCAL INFILE '$csv' INTO TABLE panelist FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (@col1,@col2,@col3,@col4,@col5,@col6,@col7,@col8,@col9,@col10,@col11,@col12,@col13,@col14) set [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],panel_id='".$extraFields['panel_id']."' ,status='".$extraFields['panelist_status']."' "; 
        return DB::connection()->getpdo()->exec($query); 
       } 

Bitte helfen Sie mir auf diese Option, wenn Semikolon getrennt Werke .

Antwort

0

Ich habe die Lösung TERMINATED BY ';' in der unteren Zeile.

$query = "LOAD DATA LOCAL INFILE '$csv' INTO TABLE panelist FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (@col1,@col2,@col3,@col4,@col5,@col6,@col7,@col8,@col9,@col10,@col11,@col12,@col13,@col14) set [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],panel_id='".$extraFields['panel_id']."' ,status='".$extraFields['panelist_status']."' ";