Из руководства ...
If no file is selected for upload in your form, PHP will return $_FILES['userfile']['size'] as 0, and $_FILES['userfile']['tmp_name'] as none.
Кроме того, isset возвращает true, когда вы проверяете $_FILES["file"]["type"]
, потому что он установлен, то есть переменная существует, но ее значение пусто. Вместо isset используйте if (empty($_FILES["file"]["type"]))
Вы не должны доверять $_FILES["file"]["type"]
, так как он может быть подделан пользователем или просто ошибочен.
Вы получаете вышеуказанные ошибки, только если файл не был загружен? Или был загружен файл? Возможно, произошла ошибка с файлом, поэтому эти части массива не были установлены.
Опубликуйте еще немного кода и более подробное описание проблемы и того, как вы можете ее воспроизвести, и мы поможем вам больше.