我被困住了,我无法弄清楚发生了什么。我点击浏览按钮并选择一个CSV文件,我点击上传文件并获得失败的消息“无效的文件类型”。我再次点击浏览按钮并选择相同的文件,它第二次工作。 有人能告诉我问题在哪里吗?
<?php
//ini_set('display_errors',1);
//error_reporting(E_ALL);
$servername = "localhost";
$username = "myuser";
$password = "mypassword";
$dbname = "mydb";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
if(isset($_POST['submit']))
{
$fname = $_FILES['sel_file']['name'];
//echo 'upload file name: '.$fname.' ';
$chk_ext = explode(".",$fname);
if(strtolower(end($chk_ext)) == "csv")
{
$filename = $_FILES['sel_file']['tmp_name'];
$handle = fopen($filename, "r");
mysqli_query($conn, 'TRUNCATE TABLE custstatements;');
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
{
if ($data[2] != 'Customer No' and $data[2] >''){
$sql = "INSERT into custstatements(custNum, field1, field2, invNum, custPo, refNum, amount, payment, balance) values('$data[2]','$data[5]','$data[7]','$data[6]','$data[9]','$data[10]','$data[12]','$data[13]','$data[14]')";
if (!mysqli_query($conn, $sql)) {
echo "Error updating record: " . mysqli_error($conn);
}
}
}
mysqli_query($conn,"UPDATE custstatements SET invoiceDate = STR_TO_DATE(field1, '%m/%d/%Y'), invDueDate = STR_TO_DATE(field2, '%m/%d/%Y') ");
mysqli_close($conn);
header('Location: index.php');
}
else
{
echo "Invalid File type only a CSV file can be imported.";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Statement Data Upload</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="wrapper">
<a href="index.php" title="Home"><img src="images/logo-deville.svg"></a>
<div class="headder"><h1>STATEMENTS DATA UPLOAD</h1><hr>
</div>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data">
Select CSV file to upload:
<input type="file" name="sel_file">
<input type="submit" value="Upload File" name="submit">
</form>
</body>
</html>
答案 0 :(得分:0)
尝试将文件检查器更改为:
$checker= array('csv');
$fileToUpload= $_FILES['self_file']['name'];
$myFile= pathinfo($fileToUpload, PATHINFO_EXTENSION);
if(in_array($myFile,$checker) ) {
// upload here
}