2016-08-22 69 views
0

我正在使用ng-file-upload来上传文件并使用文件中的加载数据将该文件导入到表中。它是完美的逗号分隔,但我想导入文件分号分号。做的ng文件上传支持分号分隔的csv文件导入使用laravel 5.2和Angular?

我的前端角和后端是laravel 5.2

这里是角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)); 
       }); 
      } 

在laravel控制器 -

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); 
       } 

如有分号隔开作品帮我在这。

回答

0

我得到解决方案TERMINATED BY';'在下面一行。

$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']."' "; 
相关问题