Ⅰ thinkPHP3.2使用phpexcel导入文件到数据库
这是我写过的,绝对能用,不行你再找我!!
<?php
if($_POST[sub]){
$uptypes=array('application/vnd.ms-excel','application/octet-stream'碰谨芦);
$max_file_szie=20*pow(2,20); //上传的文件小于20MB
$destination_folder='../conn/'; //上传文件保存路径
if($_SERVER['REQUEST_METHOD']=='POST'){
if(!is_uploaded_file($_FILES['upfile']['tmp_name'])){
exit("<script> alert('文件不存在!');history.back();</script>");
}
if($max_file_szie<$_FILES['upfile']['size']){
exit("<script> alert('文件太大了!');history.back();</script>");
}
if(!in_array($_FILES['upfile']['type'],$uptypes)){
echo '文件类型不符合!'.$_FILES['upfile']['type'];
exit("<script> alert('文件类型不符合!');history.back();</script>");
}
if(!file_exists($destination_folder)){
mkdir($destination_folder);
}
$filename=$_FILES['upfile']['tmp_name'];
$image_size=getimagesize($filename);
$pinfo=pathinfo($_FILES['upfile'晌咐]['name']); //文件路径信息
$ftype=$pinfo['extension']; //旧文件后缀名
$destination = $destination_folder.$_FILES['upfile']['name']; //新文件名称
if(file_exists($destination)&&$voerwrie !=true){
exit("<script> alert('同名文件已经存在了!');history.back();</script>");
}
//把上传的文件从临时文件夹移动到指定目录
if(!move_uploaded_file($filename,$destination)){
exit("<script> alert('移动文件出错了!');history.back();</script>");
}
$pinfo=pathinfo($destination);
$fname=$pinfo[basename];
$tpfile=$destination;//上传文件名
//-----------上传成功,导入数据star-----
$dataf=$tpfile;
if(!file_exists($dataf))
{
exit("文件不存在"); //文件不存在
}
$file = fopen("$dataf",'r');
while ($d = fgetcsv($file)) { //每次读取CSV里面的一行内容
//print_r($d); //此为一个数组,要获得每一个数据,访问数组下标即可
$type="`uid`='$d[0]' && name='$d[1]'";
$dsql=dbst($tableqz.message2,$type);
if(!$dsql){
$uid=trim($d[0]); //编号
$name=trim($d[1]); //客户名称
$type="(`uid`, `username`, `password`) VALUES (NULL, '$uid', '$name');";
dbin(hh_members,$type);
}
}
fclose($file);
unlink("$dataf");
}
//---上传end
exit("<script>笑带 alert('成功导入了所有数据!');history.back();</script>");
}
?>