대용량 CSV 문서를 mysql 데이터베이스에 업로드하고 싶은 사람이 나를 도와 줄 수 있습니다. 표는 10 개 필드로 구성되어 있지만 표제없이 5 개 필드 만 업로드하고 싶습니다. 나는이 데이터베이스에 하나의 필드에 CSV에서 먼저이 수입 된 모든 필드에서 브라우저대용량 CSV 파일을 MySQL 데이터베이스에 업로드
$filename = $_FILES['sel_file']['tmp_name'];
<?php
if($_FILES["file"]["type"] != "application/vnd.ms-excel"){
die("This is not a CSV file.");
}
elseif(is_uploaded_file($_FILES['file']['name'])){
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'cbt_software';
$link = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql server');
mysql_select_db('cbt_software') or die(mysql_error());
//Process the CSV file
$handle = fopen($_FILES['file']['name'], "r");
$data = fgetcsv($handle, 1000, ";");
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$att0 = mysql_real_escape_string($data[0]);
$att1 = mysql_real_escape_string($data[1]);
$att2 = mysql_real_escape_string($data[2]);
$att3 = mysql_real_escape_string($data[3]);
$att4 = mysql_real_escape_string($data[4]);
$sql = "INSERT INTO `course_reg` (`coursecode`,`coursename`,`coursedescription`,`coursemaster`,`courselevel`)VALUES ('$att0','$att1','$att2','$att3','$att4')";
mysql_query($sql) or die(mysql_error());
}
mysql_close($link);
echo "CSV file successfully imported.";
}
else{
die("You shouldn't be here");
}
?>
에서 PHP로 수행하고 내가 코드를 변조 후에는 CSV 파일이야을 recognicing되지 싶다. 적절한 권한이있는 경우
업로드 한 파일이 CSV 파일이 아닌 Excel 스프레드 시트인지 테스트하는 것으로 보입니다. 해당 검사를 건너 뛰거나 ".csv"로 끝나는 파일 이름을 확인하십시오 (물론 CSV 파일이 아님). –
또한 fopen() 호출이 성공했는지 확인하지 않았습니다. –
또한 잘못된 파일 이름을보고있는 것처럼 보입니다. - $ _FILES [ 'file'] [ 'name']은 클라이언트가 제공 한 이름입니다. $ _FILES [ 'file'] [ 'tmp_name'] for 업로드 된 임시 파일이 서버에 저장된 파일 이름. ('파일'이 파일 입력 상자의 이름으로 바뀌 었습니다.) –