php实现批量上传数据到数据库(.csv格式)的案例


Posted in PHP onJune 18, 2017

友情提示:上传数据的文档需要转化为.csv格式的文档

前端代码:

<form name="importForm" action="import.php" method="POST" enctype="multipart/form-data"> 
<input type="hidden" value="import_goods" name="file"> 
  <table cellpadding="2" cellspacing="1" class="tb"> 
    <tbody> 
    <tr> 
      <td width="200">选择批量上传文档:</td> 
      <td><input type="file" name="upfilename" id="upfilename" value=""></td> 
    </tr> 
    <tr> 
      <td colspan="2"> 
        <input type="submit" name="submit" value="提交" class="btn"> 
      </td> 
    </tr> 
    </tbody> 
  </table> 
</form>

后端代码:import.php文件(这里只粘贴主要代码,具体实现方法需自己完成)

if(isset($_POST['submit'])){ 
      stripos(PHP_OS, "WIN") !== false ? setlocale(LC_ALL, '') : setlocale(LC_ALL,'zh_CN.GBK'); 
       
      $fext = substr($_FILES['upfilename']['name'], strrpos($_FILES['upfilename']['name'], '.') + 1); 
      if ($fext != 'csv') { 
        die('请上传csv格式的文件',HTTP_REFERER); 
      } 
      $handle = @fopen($_FILES['upfilename']['tmp_name'], "rb"); 
   
      $i = 0; 
      $import_type = ''; 
      if ($handle) 
      { 
        while($line_data = fgetcsv($handle, 4096, ',')) 
        { 
          if ($i == 0) { 
            $import_type = trim($line_data[0]); 
            $i = 1; 
          } elseif (intval($line_data[0])) { 
            $line_list[] = $line_data; 
          } 
        } 
      } 
      //循环转换数据格式 
      foreach ($line_list as $i=> $v) 
      { 
        foreach ($v as $j=> $value) 
        { 
          $line_list[$i][$j] = iconv('GBK', 'UTF-8//IGNORE',$line_list[$i][$j]); 
        } 
      }//编码转换 
       
      fclose($handle); 
 
      if(!empty($line_list)) 
      { 
        // 登记号 
        $sn = array(); 
        $top_catid = 0; 
        $name = ''; 
        $func_name = ''; 
        switch ($import_type) { 
          case 'patent'; 
          $top_catid = 5; 
          $name = '专利申请号'; 
          $func_name = 'deal_import_patent'; 
          break; 
          case 'trademark'; 
          $top_catid = 4; 
          $name = '商标注册号'; 
          $func_name = 'deal_import_trademark'; 
          break; 
          case 'copyright'; 
          $top_catid = 2185; 
          $name = '登记号'; 
          $func_name = 'deal_import_copyright'; 
          break; 
          default: 
            die('上传文档未明确指定知产类型!'); 
          break; 
        } 
        if ($import_type == 'patent') { 
          foreach($line_list as $lkey => $lval) { 
            $lval[2] = trim($lval[2]); 
            if ($lval[2] == '专利技术') { 
              // 技术专利 
              if(!empty($lval[1])) { 
                if(in_array($lval[1],$sn)) 
                { 
                  die('列表中序号为'.$lval[0].'的知产的'.$name.$lval[1].'与前面的出现重复!');//判断是否有重复的数据(根据自己所需判断) 
                } 
                $sn[] = trim($lval[1]); 
              } else { 
                die('列表中序号为'.$lval[0].'的知产的'.$name.'为空!'); 
              } 
            } else { 
              // 非技术专利 
              $line_list[$lkey][1] = ''; 
            } 
          } 
        } elseif ($import_type == 'trademark') { 
          foreach($line_list as $lkey => $lval) { 
            if(!empty($lval[1])) { 
              if(in_array($lval[1],$sn)) 
              { 
                die('列表中序号为'.$lval[0].'的知产的'.$name.'与前面的出现重复!'); 
              } 
              $sn[] = $lval[1]; 
            } else { 
              die('列表中序号为'.$lval[0].'的知产的'.$name.'为空!'); 
            } 
          } 
        } 
        if (!empty($sn)) { 
          $sql = 'SELECT serial_number FROM ' .$table_name. ' WHERE top_catid = '.$top_catid.' AND serial_number IN (\'' .implode("','", $sn). '\')'; 
          $result = $goods_db->query($sql); 
          $r = $goods_db->fetch_array(); 
          $exist = array(); 
          foreach ($r as $k=>$v){ 
            $exist[] = $v['serial_number']; 
          } 
           
          if (!empty($exist)) die($name.'为:'.implode(',',$exist).'的知产已存在');//数据库中是否有相同的数据(根据自己所需判断) 
        }     
        // 调用处理函数 
        self::$func_name($line_list);//此时$line_list即为你上传文档的数据,数组格式,根据自己所需将数据导入数据库 
        die('批量导入完成!'); 
      } 
       
    }

.csv文档的格式为:

php实现批量上传数据到数据库(.csv格式)的案例

以上这篇php实现批量上传数据到数据库(.csv格式)的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
提问的智慧(2)
Oct 09 PHP
怎样在PHP中通过ADO调用Asscess数据库和COM程序
Oct 09 PHP
编写漂亮的代码 - 将后台程序与前端程序分开
Apr 23 PHP
第4章 数据处理-php字符串的处理-郑阿奇(续)
Jul 04 PHP
跟我学Laravel之视图 &amp; Response
Oct 15 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
Feb 16 PHP
Yii2框架使用计划任务的方法
May 25 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
Laravel中的Blade模板引擎示例详解
Oct 10 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
Nov 20 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
Apr 06 PHP
php使用event扩展的io复用测试的示例
Oct 20 PHP
PHP更安全的密码加密机制Bcrypt详解
Jun 18 #PHP
Laravel中log无法写入问题的解决
Jun 17 #PHP
php下载远程大文件(获取远程文件大小)的实例
Jun 17 #PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
Jun 17 #PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 #PHP
thinkphp查询,3.X 5.0方法(亲试可行)
Jun 17 #PHP
php 生成加密公钥加密私钥实例详解
Jun 16 #PHP
You might like
来自PHP.NET的入门教程
2006/10/09 PHP
PHP静态成员变量
2017/02/14 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
PHP的PDO错误与错误处理
2019/01/27 PHP
Javascript 判断是否存在函数的方法
2013/01/03 Javascript
JavaScript打印iframe内容示例代码
2013/08/20 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
2015/05/09 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
KnockoutJS 3.X API 第四章之click绑定
2016/10/10 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
Vue分页组件实例代码
2017/04/17 Javascript
详解在Vue中如何使用axios跨域访问数据
2017/07/07 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
jQuery实现广告条滚动效果
2017/08/22 jQuery
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
微信小程序input抖动问题的修复方法
2021/03/03 Javascript
windows下python安装pip图文教程
2018/05/25 Python
详解pandas中MultiIndex和对象实际索引不一致问题
2019/07/23 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
迷你分体式空调:SoGoodToBuy
2018/08/07 全球购物
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
美国购买舞会礼服网站:Couture Candy
2019/12/29 全球购物
会计专业自荐信范文
2013/12/02 职场文书
珍惜时间演讲稿
2014/05/14 职场文书
出差报告格式模板
2014/11/06 职场文书
公司股份合作协议书
2014/12/07 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
《青山不老》教学反思
2016/02/22 职场文书
品德与社会教学反思
2016/02/24 职场文书
手把手教你从零开始react+antd搭建项目
2021/06/03 Javascript