Хм, скажу честно, код жуткий (начиная с прямых проверок, странных получений имени файла и расширения и copy вместо move_uploaded_file ну и других конечно), но суть Вашей проблемы полагаю что Вы просто не проверяете ошибку аплоада ($_FILES['image_path']['error']) в Вашем случае получается, когда размер больше указанного в MAX_FILE_SIZE, php выставляет ошибку 2 ( UPLOAD_ERR_FORM_SIZE ), и соответственно $filename2_1 = $_FILES['image_path']['tmp_name']; пустые.
Правда getimagesize потом честно говорит об этом:
Код:
Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in /home/hubbitus/_SITES/ru.bir.ru/_temp/imho.ws/Upload/1.php on line 35
странно как Вы этого не заметили. Полагаю забыли включить уровень вывода всех ошибок.