zoukankan      html  css  js  c++  java
  • php 封装原生数据导入的方法(csv文件格式)

        //前端---部分代码
        <form class="form-inline" style="margin-top: 20px" method="post" action="/admin/commerce/import" enctype="multipart/form-data" style="display:inline-block">
            <div class="form-group">
                <label for="commerce_file">选择文件</label>
                <input class="form-control input-sm" type="file" name="commerce_file">
            </div>
            <button type="submit" class="btn btn-info">数据导入按钮</button>
        </form>
    
    
    
      //后端---原生封装导入方法
        public function actionimport()
        {
            if(!$_FILES['commerce_file']['name'])
            {
                $this->success('请选择csv格式文件');
            }
            if($_FILES['commerce_file']['size'] >= '2097152')//2M
            {
                $this->success('文件不能超过2M');
            }
            //获取储存的临时文件名
            $csv_file = $_FILES['commerce_file']['tmp_name'];
    
            //打开文件获取可读权限
            $file = fopen($csv_file,"r");
    
            //输出文本中所有的行,直到文件结束为止
            while(! feof($file))
            {
                //函数从文件指针中读入一行并解析CSV 段
                $data_line = fgetcsv($file);
    
                if($data_line)
                {
                    foreach($data_line as $k => $v)
                    {
                        //指定文件从gbk编码转换,为utf-8编码
                        $data_line[$k] = iconv('gbk','utf-8',$v);
                    }
                    $data[] = $data_line;
                }
            }
            //关闭打开文件
            fclose($file);
            $first = $data[0];
            //设定表头标题名称
            $name = array('ID','名称');
            if($first)
            {
                foreach($first as $k => $v)
                {
                    if($v != $name[$k])
                    {
                        $this->success('文件格式错误,请查看文件格式核实');
                    }
                }
            }
            if($data)
            {
                //删除第一行数据
                unset($data[0]);
                //统计插入数量
                $sum = 0;
                foreach($data as $v)
                {
                    //插入数据方法自己根据框架定义
                    $rs = Yii::app()->getDb()->createCommand()->insert('sdk_commerce', array(
                        'id' => $v[0],
                        'name' => $v[1]
                    ));
                    $sum += $rs;
                }
                $this->success('成功导入<font color=red><b>'.$sum.'</b></font>条数据','/admin/commerce/list/');
            }
        }
  • 相关阅读:
    【Codeforces 349B】Color the Fence
    【Codeforces 459D】Pashmak and Parmida's problem
    【Codeforces 467C】George and Job
    【Codeforces 161D】Distance in Tree
    【Codeforces 522A】Reposts
    【Codeforces 225C】Barcode
    【Codeforces 446A】DZY Loves Sequences
    【Codeforces 429B】Working out
    【Codeforces 478C】Table Decorations
    【Codeforces 478C】Table Decorations
  • 原文地址:https://www.cnblogs.com/cxx8181602/p/8512803.html
Copyright © 2011-2022 走看看