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/');
            }
        }
  • 相关阅读:
    Mac 系统环境变量配置
    sublime3+quick3.5 完整使用教程
    httprunner 2.5.7 下.env 文件环境变量的使用及debugtalk的使用,对test的参数化及执行
    python_request的安装及模拟json的post请求及带参数的get请求
    windows 下安装Charles,破解,安装证书,设置可抓取https包
    jmeter元件的执行顺序
    jmeter的参数化实现
    jmeter工作目录介绍、jmeter元件及组件介绍
    jmeter设置成中文显示
    win10下安装jmeter
  • 原文地址:https://www.cnblogs.com/cxx8181602/p/8512803.html
Copyright © 2011-2022 走看看