Ошибка при проверке типа файла

<?php
var_dump ($_POST);
$error = false;
$uploaddir = $_SERVER["DOCUMENT_ROOT"]."/img";
$uploadfile = $uploaddir . basename($_FILES["myfile"]["name"]);
$allowedType = ["IMAGETYPE_JPEG", "IMAGETYPE_PNG", "IMAGETYPE_JPG"];
$detectedType = exif_imagetype($_FILES['myfile']['tmp_name']);
if(isset($_POST["download"])){
    if(!empty ($_FILES["myfile"]["error"])){
        echo "Fatal error";
    }
    if(!in_array($detectedType, $allowedType)){
        echo "Error";
    } else{
        move_uploaded_file($_FILES["myfile"]["tmp_name"], $uploadfile);
        echo "Success!";
    }
    
}
?>
<form enctype="multipart/form-data" action="<?php $_SERVER["PHP_SELF"] ?>" method="post">
    Загрузить файл: <input name="myfile" type="file" />
    <input type="submit" name="download" value="Загрузить" />
</form>

Как исправить данную ошибку? Fatal error: Uncaught ValueError: Path cannot be empty in C:\Users\Totobi\Documents\Project\PHP\downloads\index.php:7 Stack trace: #0 C:\Users\Totobi\Documents\Project\PHP\downloads\index.php(7): exif_imagetype() #1 {main} thrown in C:\Users\Totobi\Documents\Project\PHP\downloads\index.php on line 7


Ответы (1 шт):

Автор решения: Алексей Шиманский

Нужно воспользоваться отладкой, посмотреть, почему и когда $_FILES['myfile']['tmp_name'] содержит пустоту и починить этот момент

Например она может быть пустая при первой загрузке формы, когда POST ещё не был отправлен

→ Ссылка