2014-06-02 3 views
0

Я выполняю функцию проверки размера загруженного файла. Однако, когда я загружаю файл, размер которого меньше разрешенного, он всегда выводит 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

Пожалуйста, верните true в другой части для 'checkSize' метод – prava

+0

напечатайте и проверьте этот' $ _FILES ['image'] ['size'] ' –

+1

Это должно быть' return true; ', поскольку вы проверяете, используя 'if ($ size> = $ max)' - если true, показать ошибку. –

ответ

3

Ваш checkSize() не возвращает ничего, если размер это нормально, что означает PHP будет автоматически возвращать значение null. null == false ИСТИНА в PHP, так что вы ложно сказать, что размер не в порядке:

php > var_dump(null == false); 
bool(true) 

Ваш код должен быть просто:

function checkSize($size) { 
    global $max; 
    return ($size <= $max); 
} 

Таким образом, вы будете возвращать либо true или false.

В качестве альтернативы, вы можете использовать «строгий» тест равенства, ===:

php > var_dump(null === false); 
bool(false) 
0

Это может помочь использовать осмысленные имена в своих функциях, так что вы знаете, чего ожидать. например, вы назвали свою функцию чем-то вроде uploadIsAllowableSize(), тогда вы бы лучше поняли, что это ожидаемое поведение возвращения false, если размер givens превышает максимальный. Вы также должны вернуть true, если размер является приемлемым. Вы можете сделать это легко в одной строке, например:

return ($size >= $max); 

Вы могли бы также рассмотреть вопрос об определении переменной для максимального размера файла, а затем с помощью global. Это предпочтительный способ решения такой вещи, которая не должна меняться во время выполнения.

Смежные вопросы