变量:
$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我也总是假的?
答案 0 :(得分:1)
$_FILES['uploadfile']['tmp_name'];
你应该看'type'而不是'tmp_name'
$_FILES['uploadfile']['type'];
但是,有一个SO discussion here关于为什么csv文件可以具有application/octet-stream
mime类型。它表明您需要自己验证文件类型,而不是依赖['type']
。最好的方法是使用fgetcsv()尝试将其解析为csv。如果失败则假设它不是csv。