【发布时间】:2017-10-20 12:48:21
【问题描述】:
我遇到了一个奇怪的问题。我想用 PHP 编写一个简单的多图像上传脚本。 因此,我需要一个 if 语句来检查图像是否具有正确的图像类型,这不能按预期工作。我尝试上传的图像是 .jpg 图像。 “jpg”信息存储在变量 $mediaFileType 中,由 if 语句检查。通常它现在应该在 else 语句中执行脚本,但它总是做相反的事情并声明“jpg”!=“jpg”=true。显然不是。那么我在这里错过了什么?
if($mediaFileType != 'jpg' && $mediaFileType != 'png' && $mediaFileType != 'jpeg')
{
echo 'Wrong Media Type<br>';
echo $mediaFileType;
exit();
} else {
....
}
网站简单地说:
Wrong Media Type
jpg
【问题讨论】:
-
一个文件的文件扩展名不能相同,您需要使用“OR”运算符进行检查。您甚至可能想为此发布 html 和 php 的其余部分
-
试试
!in_array(),它有时可以让事情变得比多个ifs更容易一些。!in_array($mediaFileType, ['jpg', 'png', 'jpeg'])。如果这不起作用,请尝试修剪$mediaFileType或var_dump($mediaFileType)以确保没有任何多余的字符。 -
你想了解运算符优先级...php.net/manual/en/language.operators.php
-
你能不能用 var_dump() mediaFileType 而不是回显它,好吗?该字符串可能包含不可见的空白字符。
-
尝试修剪 $mediaFileType,
trim($mediaFileType)
标签: php if-statement image-upload