Ⅰ 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>");
}
?>