我是新的php中的上传功能,我有这个:
if( $_FILES[$fileElementName]['type'] !== "image/gif"
|| $_FILES[$fileElementName]['type'] !== "image/jpeg"
|| $_FILES[$fileElementName]['type'] !== "image/jpg"
|| $_FILES[$fileElementName]['type'] !== "image/pjpeg"
|| $_FILES[$fileElementName]['type'] !== "image/x-png"
|| $_FILES[$fileElementName]['type'] !== "image/png"
|| $_FILES[$fileElementName]['type'] == "application/x-rar-compressed"
){
$error = 'wrong file only :GIF,jpg,png .';
// die($_FILES[$fileElementName]['type']); // also i did die here to check
}
但即使我上传了jpg,它也无法正常工作。 我确实死了/ var_damp并且它的类型适用于E.G: 我上传了sds.jpg,我让它给出了正确的答案:
image/jpeg
但它会一直说错误的文件为什么?
答案 0 :(得分:2)
尝试更多更短更好的变体:
$allowedTypes = array('image/jpeg','image/jpg' ,'image/pjpeg' ,'image/pjpeg', 'image/png', 'application/x-rar-compressed');
$fileType = $_FILES[$fileElementName]['type'];
if(!in_array($fileType, $allowedTypes)) {
// do whatever you need to say that
// it is an invalid type eg:
die('You may only upload jpeg images');
}
答案 1 :(得分:0)
你应该使用条件&&
(和)而不是||
(或者)
为了避免一个难以维护的大规模声明,我会使用一个数组。
$allowedtypes = array(
'image/jpg',
'image/jpeg',
//..etc
);
if (! in_array($_FILES[$fileElementName]['type'], $allowedTypes)) {
// not allowed
} else {
// allowed
}