1

变量:

$csvFile = $_FILES['uploadfile']['tmp_name'];
$csvFile = $con->real_escape_string($csvFile);
$mimes = array('application/vnd.ms-excel','text/plain','text/csv','text/tsv','csv');

if陈述:

if(in_array($csvFile, $mimes))
{
$file = fopen($csvFile, 'r');
$i = 0;
$row = 1; 
while (($line = fgetcsv($file)) !== FALSE) 
{
if($row == 1){ $row++;  continue; }
$data_array[$i] = $line[0];
$data_array[$i] = mysqli_real_escape_string($con, trim($data_array[$i]));
$encrypted_numbers[$i] = encryption::encrypt($data_array[$i]);
$encrypted_numbers[$i] .= mysqli_real_escape_string($con, trim($line[1]));
$i++;
}
fclose($file);
} 
else 
{
die("Sorry, file type not allowed");
};

我已经尝试了 30 分钟,有人知道为什么即使文件名为 csv.csv,我总是会出错吗?

4

1 回答 1

1
$_FILES['uploadfile']['tmp_name'];

您应该查看“类型”而不是“tmp_name”

$_FILES['uploadfile']['type'];

但是,这里有一个关于为什么 csv 文件可以具有application/octet-streammime 类型的讨论。它建议您需要自己验证文件类型,而不是依赖['type']. 最好的方法是使用fgetcsv()尝试将其解析为 csv。如果失败,则假设它不是 csv。

于 2013-08-12T01:32:30.797 回答