0
<?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

RinSama
  • 33

1 Answers1

1

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

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