【问题标题】:Import CSV to Database on Codeigniter将 CSV 导入 Codeigniter 上的数据库
【发布时间】:2018-02-28 07:35:10
【问题描述】:

我刚开始学习 Codeigniter (CI),我想将 CSV 文件导入数据库。

我关注了https://codeigniter.com/user_guide/libraries/file_uploading.html 但还是一头雾水。

如何从上传表单中抓取文件?

在 PHP native 上,代码是

$_FILES['file']['tmp_name']

请帮忙。谢谢。

【问题讨论】:

标签: php codeigniter csv codeigniter-3


【解决方案1】:

如何从上传表单中获取文件?
上传完成后使用$this->upload->data()

$data = $this->upload->data(); # print_r($data)
$data['file_name'];
$data['upload_path']; 

Check the documentation for more details

【讨论】:

  • 我试过这个并找到了两种方法: 1.上传文件并使用 $this->upload->data() 获取完整路径 2.临时上传并使用 $_FILES 获取路径不确定为什么这以前不起作用。
【解决方案2】:

这可以帮助你。

public function import_uploads()  
{   
    /*Upload csv file into uploads folder*/    
    $config['upload_path'] ='./uploads/';
    $config['allowed_types'] = 'xls|xlsx|csv';
    $this->load->library('upload', $config);
    $this->upload->initialize($config);
    if (!$this->upload->do_upload('attachment'))
    {
        echo  $this->upload->display_errors();
    }
    else
    {
        // echo "<pre>"; print_r($this->upload->data());
        $upload_data = $this->upload->data(); 
        $attachment = $upload_data['file_name'];
        $data = array( 
                'attachment' =>  $attachment,
                ); 
        /*insert Data*/    
        $this->db->insert('xls_import_upload',$data);

    }
}

【讨论】:

    【解决方案3】:

    你可以试试这个:

    <input type="file" class="md-input" id="file" name="file" title=""/>
    

    控制器:

    public function import_data(){
        ini_set('memory_limit', '2048M');
        $filename=$_FILES["file"]["tmp_name"];
        if($_FILES["file"]["size"] > 0)
        {
            $file = fopen($filename, "r");
            while (($importdata = fgetcsv($file, 10000, ",")) !== FALSE)
            {
    
                    $data = array(
                        'test1' =>$importdata[0],
                        'test2' =>$importdata[1],
    
                    );
    
                $insert = $this->common->insert_data($data,$tablename = 'tablename');
            }
            fclose($file);
            $this->session->set_flashdata('success', 'Data are imported successfully..');
        }else{
            $this->session->set_flashdata('success', 'Something went wrong..');
        }
    }
    

    型号:

    function insert_data($data, $tablename)
    {
        if ($this->db->insert($tablename, $data)) {
            return true;
        } else {
            return false;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-10
      • 2013-06-13
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 2017-01-11
      • 2018-03-20
      • 1970-01-01
      相关资源
      最近更新 更多