Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从PHP中上传的文件中提取扩展名?_Php - Fatal编程技术网

如何从PHP中上传的文件中提取扩展名?

如何从PHP中上传的文件中提取扩展名?,php,Php,我有一个模块,其中有一个文件上传接受任何文件,但它应该只处理csv文件。如果有其他文件,那么应该说是无效文件。 我已经写了一段代码,但即使我上传了一个CSV文件,它也不能识别它是一个CSV文件。 我的代码是 if($_FILES['file']['type'] != "application/vnd.ms-excel"){ die("This is not a CSV file."); } 试试这个 $filename = $_FILES['file']['name']; $path_p

我有一个模块,其中有一个文件上传接受任何文件,但它应该只处理csv文件。如果有其他文件,那么应该说是无效文件。 我已经写了一段代码,但即使我上传了一个CSV文件,它也不能识别它是一个CSV文件。 我的代码是

if($_FILES['file']['type'] != "application/vnd.ms-excel"){
   die("This is not a CSV file.");
}
试试这个

$filename = $_FILES['file']['name'];
$path_parts = pathinfo($filename);
if($path_parts['extension']!='csv'){
   die("This is not a CSV file.");
}

您既不能信任mime类型,也不能信任浏览器提供的文件扩展名。不同的浏览器为同一个文件发送不同的mime类型,用户可以重命名它,这样您也就不信任扩展名了。上传后,您必须使用其他检查来验证文件。CSV也不是“application/vnd.ms excel”。