我正在 php 中上传文件,并且只想上传 csv 文件。我相信我的语法适合内容类型。当它是 csv 文件时,它总是转到 else 语句。我在这里做错了什么?
if (($_FILES["file"]["type"] == "text/csv"))
{
}
else
{
}
如果我更改内容类型,它适用于该格式,但不适用于 csv。
mime 类型可能不是text/csv
有些系统可以以不同的方式读取/保存它们。 (例如,有时 IE 将 .csv 文件发送为application/vnd.ms-excel
)所以你最好的选择是构建一个允许值的数组并对其进行测试,然后找到所有可能的值进行测试。
$mimes = array('application/vnd.ms-excel','text/plain','text/csv','text/tsv');
if(in_array($_FILES['file']['type'],$mimes)){
// do something
} else {
die("Sorry, mime type not allowed");
}
如果您希望可以添加进一步检查 mime 是否以文本/纯文本形式返回,您可以运行preg_match
确保它有足够的逗号作为 csv。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)