【发布时间】:2013-08-13 06:08:51
【问题描述】:
变量:
$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,我总是会出错吗?
【问题讨论】:
-
in_array 调用之前的 var_dump($csvFile) 给你什么?
-
很可能 $csvFile 会给你实际的文件名,而不是你试图用 in_array 做的那个文件的 mime 类型。
-
@Maximus2012 字符串(26) "D:\\xampp\\tmp\\phpAC6.tmp"
-
@user2671532 当您尝试将其与 $mimes 匹配时,这将始终导致 in_array 返回 false。
-
@Maximus2012 我意识到这一点,我尝试让 csvFile 没有临时名称,然后将其内爆,即使 var_dump 给了我“csv.csv”名称,它仍然是错误的
标签: php arrays csv if-statement