【发布时间】:2018-01-22 03:56:41
【问题描述】:
我被卡住了,我不知道发生了什么。我点击浏览按钮并选择一个 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>
【问题讨论】:
-
感谢拉维的快速响应。事实证明,我的主页调用了一个名为 fileupload.php 的错误页面,该页面又具有一个带有 action=upload.php 的表单,最新的是包含我上面的代码的页面,该页面有效。我不敢相信我花了多少时间才弄明白这个。