• 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/');
            }
        }
  • 相关阅读:
    Maven属性
    安居客Android项目架构演进
    HttpClient 解说 (1) 基础
    linux 打包和压缩文件
    java AES-256加解密解决方法
    jdk8 分隔字符串最新方法
    springboot 过滤器,拦截器,切片的运用
    thinkphp 5.0手记
    如何使用UDP进行跨网段广播
    php multicast多播实现详解
  • 原文地址:https://www.cnblogs.com/cxx8181602/p/8512803.html
Copyright © 2020-2023  润新知