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/');
            }
        }
  • 相关阅读:
    [App Store Connect帮助]七、在 App Store 上发行(3.2)提交至“App 审核”:查看 App 状态历史记录
    [App Store Connect帮助]七、在 App Store 上发行(3.1)提交至“App 审核”:提交 App 以供审核
    (1.2)DML增强功能-4大排名函数与top ties/tablesample
    (1.1)DML增强功能-CTE
    CTE的妙用
    sql server 统计信息
    oracle高水位问题
    查看慢查询语句
    关于uuid与自增列的选择
    sql server学习路径地址
  • 原文地址:https://www.cnblogs.com/cxx8181602/p/8512803.html
Copyright © 2011-2022 走看看