반응형
PHP를 사용하여 MySQL 데이터베이스에 Excel 파일의 데이터를 업로드해야합니다. 그 코드를 찾았지만 큰 파일을 업로드 할 수 없습니다.
누구든지 아래 링크에 언급 된 코드의 최대 파일 크기 제한을 어떻게 늘릴 수 있는지 알려주세요.
<!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_filesize
post_max_size = 40M
그러나 여전히 문제는 동일했고 나는
$max_filesize = 41943040
이제 완벽하게 작동합니다 .....
도움을 주셔서 감사합니다
참조 페이지 https://stackoverflow.com/questions/23869743
반응형
'MySql' 카테고리의 다른 글
MySQL How to find absolute difference between two numbers MYSQL (0) | 2020.12.05 |
---|---|
MySQL 쿼리 결과를 로컬 CSV 파일에 저장하려면 어떻게합니까? (0) | 2020.12.05 |
MySQL phpMyAdmin이 MySQL 서버에 연결할 수 없습니다. (0) | 2020.12.05 |
MySQL 공급자를 초기화 할 수 없습니다. 스키마가 없거나 잘못되었습니다. MySql.Web 커넥터 용 (0) | 2020.12.05 |
MySQL cPanel을 사용하여 PHP 파일과 데이터베이스를 업로드하려면 어떻게해야합니까? (0) | 2020.12.05 |
댓글