Эта цитата из вашего второго вопроса отвечает (хотя бы частично) на два других:
I would have thought that the script would wait until all form data was received before executing any code.
Для того, чтобы PHP мог обрабатывать все входные данные, Apache (или любой другой HTTP-сервер, который вы используете) сначала дождется завершения загрузки файла и только после этого обработает скрипт PHP.Таким образом, проверка PHP max_input_time
вступит в действие после завершения процесса загрузки файла.
Теперь, в таком случае, вы, вероятно, спросите, почему сканирование вирусов, перемещение файлов и любые другие скриптовые процедуры не выполняются.Это не происходит, поскольку логично, что любой счетчик времени, связанный с PHP, должен начинаться с выполнения скрипта, и это должно происходить после получения всех входных данных.Что ж, это ДОЛЖНО иметь место и быть честным - мои мысли по этому поводу являются своего рода выстрелом в темноте, но хорошо ... либо какой-то другой предел превышен, либо сценарий запускается с запросом, но приостанавливаетсяhttpd до тех пор, пока он не будет готов и эффективно - некоторые из этих счетчиков могут истечь в это время.
Я не знаю, как ответить на ваш второй вопрос, так как обновление будет означать, что все данные возвращаются-Пост-ред и должен быть повторно обработан.Я сомневаюсь, что вы бы поступили иначе - просто загрузите handleUpload.php без повторной отправки формы, но я должен упомянуть о такой возможности.Вторым предположением может быть то, что если первый запрос был неожиданно завершен - во второй раз происходит сбор мусора и / или процесс восстановления.
Надеюсь, что это немного прояснится.