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 相关文章推荐
php更改目录及子目录下所有的文件后缀扩展名的代码
Oct 12 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
Aug 03 PHP
PHP编码转换
Nov 05 PHP
php读取目录及子目录下所有文件名的方法
Oct 20 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
Jul 01 PHP
weiphp微信公众平台授权设置
Jan 04 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
Feb 27 PHP
PHP实现163邮箱自动发送邮件
Mar 29 PHP
php中关于长度计算容易混淆的问题分析
May 27 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
PHP实现正则表达式分组捕获操作示例
Feb 03 PHP
PHP PDOStatement::setFetchMode讲解
Feb 03 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 获取完整url地址
2008/12/20 PHP
PHP 批量删除数据的方法分析
2009/10/30 PHP
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
php学习之简单计算器实现代码
2011/06/09 PHP
php empty()与isset()区别的详细介绍
2013/06/17 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
PHP count()函数讲解
2019/02/03 PHP
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
nodejs教程之环境安装及运行
2014/11/21 NodeJs
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
jQuery实现Div拖动+键盘控制综合效果的方法
2015/03/10 Javascript
js实现简单的验证码
2015/12/25 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
vue.js分页中单击页码更换页面内容的方法(配合spring springmvc)
2018/02/10 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
js实现表单项的全选、反选及删除操作示例
2020/06/05 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
2015/04/24 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
tensorflow入门之训练简单的神经网络方法
2018/02/26 Python
Python类中的魔法方法之 __slots__原理解析
2019/08/26 Python
python爬虫爬取监控教务系统的思路详解
2020/01/08 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
python微信公众号开发简单流程实现
2020/03/09 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
学生自我鉴定范文
2013/10/04 职场文书
少年闰土教学反思
2014/02/22 职场文书
旅游安全协议书
2014/04/21 职场文书
投标诚信承诺书
2014/05/26 职场文书
银行招聘自荐信
2015/03/06 职场文书
客服专员岗位职责范本
2015/04/07 职场文书