未加星标

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

字体大小 | |
[开发(php) 所属分类 开发(php) | 发布者 店小二04 | 时间 | 作者 红领巾 ] 0人收藏点击收藏

友情提示:上传数据的文档需要转化为.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'])){
striposphp_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代码审计工具 php开发工程师 移动开发者大会 移动互联网开发 web开发工程师 软件开发流程 软件开发工程师

分页:12
转载请注明
本文标题:php实现批量上传数据到数据库(.csv格式)的案例
本站链接:http://www.codesec.net/view/557217.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 开发(php) | 评论(0) | 阅读(50)