我对一些代码有问题:
此代码适用于:
if (!($uploadFile_type == "image/gif")) {
echo "Sorry, only GIF files are allowed.";
$uploadOk = 0;
}现在,我想做倍数,所以我正在尝试:
if (($uploadFile_type != "image/gif") || ($uploadFile_type != "image/jpg") || ($uploadfile_type != "image/png")) {
echo "Sorry, only GIF/JPG or PNG files are allowed.";
}问题是,每当我上传.jpg文件时,我就会得到“对不起,只允许GIF/JPG或PNG文件”。
上面的代码有什么问题吗?
发布于 2014-10-15 11:20:08
问题是你的状况:
如果if x or y或y之一为真,则计算为真。在您的示例中,jpg肯定不等于png,为什么它总是计算为true。
如何评估它:
if(("image/jpeg" != "image/gif") || ("image/jpeg" != "image/jpeg") || ("image/jpeg" != "image/png"))这意味着:
if(true || false || true)即:
if(true)相反,将其改为:
if (!($uploadFile_type == "image/gif" || $uploadFile_type == "image/jpeg" || $uploadfile_type == "image/png"))发布于 2014-10-15 11:34:42
试试这个..。
$array = array('image/gif','image/jpg','image/png');
if(!in_array($uploadFile_type,$array)){
echo "Sorry, only GIF/JPG or PNG files are allowed.";
}发布于 2014-10-15 12:41:27
为什么不创建一个有效值数组,例如,
$valid_image_types = array('image/gif', 'image/jpeg', 'image/png');然后检查此数组中的文件上载类型。
if (!in_array($uploadFile_type, $valid_image_types)) {
echo "Sorry, only GIF/JPG or PNG files are allowed.";
}https://stackoverflow.com/questions/26381139
复制相似问题