我创建了一个检查上传文件大小的功能。但是,当我上传小于允许大小的文件时,它始终输出size is over permit
。这是我的功能:
$max=150000;
function checkSize($size)
{
global $max;
if($size >= $max)
{
return false;
//echo 'size > max size';
}
}
$checkSize=checkSize($_FILES['image']['size']);
if($checkSize==false)
{
echo 'size is over permit';
}
else
{
echo 'ok';
}
答案 0 :(得分:3)
如果大小合适,您的checkSize()
不会返回任何内容,这意味着PHP会自动返回null
值。 php中的null == false
为TRUE,因此您错误地说大小不合适:
php > var_dump(null == false);
bool(true)
您的代码应该是:
function checkSize($size) {
global $max;
return ($size <= $max);
}
这样您就可以返回true
或false
。
或者,您可以使用&#34; strict&#34;平等测试,===
:
php > var_dump(null === false);
bool(false)
答案 1 :(得分:0)
在您的函数中使用有意义的名称可能会有所帮助,因此您可以知道会发生什么。例如,你将你的函数命名为uploadIsAllowableSize()
,那么如果大小给定超过最大值,你会更好地理解它返回false
的预期行为。如果大小可以接受,您还需要返回true
。您可以在一行中轻松完成此操作,如:
return ($size >= $max);
您也可以考虑为最大文件大小定义变量,而不是使用global
。这是处理这样的事情的首选方式,不应该在运行时更改。