Если загрузка не удалась, вы даже не должны пытаться сделать файл move_uploaded_file.Правильный метод обработки загрузки:
if ($_FILES['yourfile']['error'] !== UPLOAD_ERR_OK) {
... upload failed, bail out
die("Failed upload");
}
// got here, upload must've worked
move_uploaded_file(...);
Коды ошибок подробно описаны здесь и сообщат вам, был ли файл слишком большим для обработки из-за настроек PHP.
Что касается самих настроек PHP.Ваш post_max_size
должен иметь максимально допустимый размер файла, плюс любые другие данные, которые вы отправляете вместе с загрузкой файла.memory_limit должен быть больше, чем максимальный размер файла, плюс дополнительный, чтобы учесть издержки скрипта.Ограничения по времени выполнения PHP не вступают в игру для загрузки, так как таймеры сценария не запускаются до ПОСЛЕ завершения загрузки.