php - PHP 无法识别 CSV 文件
问题描述
我正在使用表单上传 CSV
<form role="form" action="#" method="post" style="color: black;">
<input type="file" name="file" id="file"><br/>
<input type="submit" value="submit">
</form>
将其处理到数据库的代码
<?php
if ($_SERVER['REQUEST_METHOD'] = $_POST) {
echo $filename=$_FILES["file"]["name"];
$ext=substr($filename,strrpos($filename,"."),(strlen($filename)-strrpos($filename,".")));
//we check,file must be have csv extention
if($ext=="csv")
{
$file = fopen($filename, "r");
while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE)
{
$gender = $emapData[2];
if ($gender = "Male") {
$gender = 1;
} else {
$gender = 2;
}
$status = $emapData[3];
if ($status = "Unclaimed") {
$status = 1;
} else {
$status = 2;
}
$sql = "INSERT into angels(id,age,gender,status,giftername,gifteremail) values('$emapData[0]','$emapData[1]','$gender','$status','$emapData[4]','$emapData[5]')";
mysqli_query($db_conn, $sql);
}
fclose($file);
echo "CSV File has been successfully Imported.";
}
else {
echo "Error: Please Upload only CSV File";
}
}
?>
我正在上传 .csv 文件,但我一直点击“错误:请仅上传 CSV 文件”
解决方案
您应该检查“.csv”,因为抓取扩展名的行也会复制点。更好的方法是使用pathinfo(),并使检查大小写不敏感。
<?php
$filename = 'abc.csv';
if (strtolower(pathinfo($filename)['extension']) === 'csv')
{
// Your csv stuff.
echo "Doing csv stuff.\n";
}
else
exit('Error: Please Upload only CSV File');
推荐阅读
- r - 如何在 R Shiny 的 uiOutput 上下文中正确使用 checkboxInput 'All/None'?
- ruby-on-rails - XML 在字符上失败
- echarts - eCharts:markLine 标签偏移/从行间距
- javascript - 我将如何编写一个函数,该函数接受一个正整数数组并返回一个数字的阶乘数组?
- python - Python如何使用拆分分隔符删除csv上的空格
- javascript - 从特定 Chromecast 上正在播放的当前曲目中检索媒体信息
- dhis-2 - 在您的网站上直接嵌入实时 dhis2 数据
- java - 从 LocalDateTime Java 8 获取 UTC java.uti.Date
- java - 如何模拟构造函数一个静态公共类以引发异常
- python - Padas,如何创建列是多维数组的数据集?