如何在codeigniter中读取CSV文件的内容

y4ekin9u  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(151)

我已经上传了一个CSV到codeigniter使用多部分形式,这是HTML代码:

<label for="enterCSV">Enter CSV            
<input  type="file"  name="enterCSV" accept=".csv">
</label>

下面是控制器上的php代码:

$csv = $_FILES['enterCSV']['name'];

            $file = fopen($csv, r); //open file
            while (!feof($file)){ //read till the end of the file
                $content = fgetcsv($file); //get content of the file
            }

我只是想用我的php读取上传的csv文件的内容,并相应地操作它。

2wnc66cl

2wnc66cl1#

您可以尝试以下操作:

$csv = $_FILES['file']['tmp_name'];

$handle = fopen($csv,"r");
while (($row = fgetcsv($handle, 10000, ",")) != FALSE) //get row vales
{
    print_r($row); //rows in array

   //here you can manipulate the values by accessing the array

}
xn1cxnb4

xn1cxnb42#

这是我使用的代码:在视图上:

<form action="<?php echo base_url('Controller/get_content'); ?>"  method="POST" enctype="multipart/form-data">
    <input type="file" class="custom-file-input" id="csv_file" name="csv_file"> 
    <label class="custom-file-label" for="csv_file">Choose CSV file</label>
    <button class="btn btn-success" type="submit"> Import</button>
</form>

在控制器上:

public function get_content(){
    $csv = $_FILES['csv_file']['tmp_name'];
    $handle = fopen($csv,"r");
    while (($row = fgetcsv($handle, 10000, ",")) != FALSE)
    {
        //row should have same structure as database
        $add = $this->model->add($row);
    }
                
    redirect('/import_page', 'refresh');
}

在模型上:

public function add($data){
   return $this->db->insert("table_csv", $data);
}

相关问题