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

发布时间 - 2026-01-11 01:56:14    点击率:

友情提示:上传数据的文档需要转化为.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 导出excle的.csv格式的数据时乱码问题  # php将数组转换成csv格式文件输出的方法  # php导出csv格式数据并将数字转换成文本的思路以及代码分享  # 详解php几行代码实现CSV格式文件输出  # 上传  # 文档  # 所需  # 列表中  # 给大家  # 为空  # 登记号  # 专利申请  # 希望能  # 这篇  # 转化为  # 友情提示  # 即为  # 数据库中  # 小编  # 大家多多  # 格式为  # 判断是否  # 后端  # 数据格式 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在 Pandas 中基于一列条件计算另一列的分组均值  5种Android数据存储方式汇总  如何基于PHP生成高效IDC网络公司建站源码?  如何生成腾讯云建站专用兑换码?  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  如何快速搭建高效简练网站?  如何在阿里云香港服务器快速搭建网站?  实例解析Array和String方法  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  在Oracle关闭情况下如何修改spfile的参数  韩国服务器如何优化跨境访问实现高效连接?  Python文本处理实践_日志清洗解析【指导】  重庆市网站制作公司,重庆招聘网站哪个好?  微信小程序 require机制详解及实例代码  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  详解Oracle修改字段类型方法总结  如何用AWS免费套餐快速搭建高效网站?  Laravel如何创建自定义中间件?(Middleware代码示例)  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  如何在景安云服务器上绑定域名并配置虚拟主机?  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  Laravel如何使用Blade组件和插槽?(Component代码示例)  北京专业网站制作设计师招聘,北京白云观官方网站?  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何在IIS7中新建站点?详细步骤解析  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  如何在云主机上快速搭建网站?  用yum安装MySQLdb模块的步骤方法  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  如何解决hover在ie6中的兼容性问题  Laravel怎么使用Intervention Image库处理图片上传和缩放  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  高防服务器:AI智能防御DDoS攻击与数据安全保障  网站图片在线制作软件,怎么在图片上做链接?  javascript如何操作浏览器历史记录_怎样实现无刷新导航  Laravel怎么实现验证码(Captcha)功能  JS经典正则表达式笔试题汇总  如何在新浪SAE免费搭建个人博客?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?