本文介绍了如何使用PHP将大型Excel文件导入MySql数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
<!DOCTYPE html> <?php include 'db.php'; include 'Excel/reader.php'; function uploadFile($fieldName, $fileType, $folderName, $name = "") { $flg = 0; $MaxID = ""; $ext = ""; $uploadfile = ""; if (isset($fieldName) AND $fieldName['name'] != '') { $flg = 1; $allowed_filetypes = $fileType; // I Need to increase this..... I tried changing values but nothing happened $max_filesize = 1048576; $filename = $fieldName['name']; if ($name == "") $MaxID = time() . time() . rand(1, 100); else $MaxID = $name; $ext = substr($filename, strpos($filename, '.'), strlen($filename) - 1); if($ext==".xlsx") $ext=".xls"; if (!in_array($ext, $allowed_filetypes)) echo "<h1>The file you attempted to upload is not allowed...</h1>"; else if (filesize($fieldName['tmp_name']) > $max_filesize) echo "<h1>The file you attempted to upload is too large...</h1>"; else { $uploadfile = $folderName . "/" . $MaxID . $ext; if (move_uploaded_file($fieldName['tmp_name'], $uploadfile) == FALSE) { echo "<h1>Error in Uploading File...</h1>"; $MaxID = ""; } else $MaxID = $MaxID . $ext; } } return $MaxID; } if(isset($_POST@['submit'])) { if($_FILES['csvFile']['name']!="") { $fileName=uploadFile($_FILES['excelFile'],array(".csv"),"excel_file"); $row=0; if(($handle = fopen("excel/".$fileName , "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); //print_r($data); $query="INSERT INTO StudentData(FirstName,LastName,MobileNo,City)VALUES('".$data[0]."','".$data[1]."','".$data[2]."','".$data[3]."')"; mysql_query($query); } fclose($handle); } } else if($_FILES['excelFile']['name']!="") { $fileName=uploadFile($_FILES['excelFile'],array(".xls",".xlsx"),"excel_file"); $data = new Spreadsheet_Excel_Reader(); $data->read('excel_file/'.$fileName); for($i=1;$i<=$data->sheets[0]['numRows'];$i++) { $firstname=$data->sheets[0]['cells'][$i][1]; $lastname=$data->sheets[0]['cells'][$i][2]; $mobile=$data->sheets[0]['cells'][$i][3]; $city=$data->sheets[0]['cells'][$i][4]; $query="INSERT INTO StudentData(FirstName,LastName,MobileNo,City)VALUES('".$firstname."','".$lastname."','".$mobile."','".$city."')"; mysql_query($query); } } } if(isset($_POST@['delete'])) { mysql_query("DELETE FROM StudentData"); } ?>
根据ASNAOUI Ayoub,我进行了以下更改:
; Maximum allowed size for uploaded files.upload_max_filesize = 40M; Must be greater than or equal to upload_max_filesizepost_max_size = 40M
但是问题仍然存在,然后我尝试更改
$max_filesize = 41943040
现在,它完全可以正常工作.....
感谢大家的帮助
这篇关于如何使用PHP将大型Excel文件导入MySql数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!