Задать вопрос

Как в PHP очистить массив «$_FILES»?

<?php
echo <<<_HTML
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Upload File</title>
</head>

<body>
    <form method="POST" action="index.php" enctype="multipart/form-data">
        Select File: <input type="file" name="image01" size="10">
        <input type="submit" value="Upload">
    </form>
</body>

</html>
_HTML;

if ($_FILES) {
    $name = $_FILES["image01"]["name"];
    move_uploaded_file($_FILES["image01"]["tmp_name"], $name);
    rename($name, "files/images/$name");
    echo "Uploaded image '$name'<br><img src='files/images/$name'>";

}


?>

Недавно начал изучать PHP, добрался до загрузки файлов на сервер, но не понимаю один момент. PHP-код выше проверяет был ли загружен файл (посредством простой HTML-формы). Если да, то сохраняет его в соответствующей директории, а после просто выводит на экран (в данном случае, изображение). Но, если после этого перезагрузить страницу, то он снова выводит изображение. Как можно сделать так, чтобы после перезагрузки PHP не думал, что был загружен какой-либо файл?
  • Вопрос задан
  • 779 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@YashaWeb
Это не сбрасывается, потому что действие post сохраняется в конце браузера и перезагружается (в течение небольшого промежутка времени, так как это всего лишь csv), когда они нажимают F5. Который по сути такой же, как они, используя форму для загрузки другого CSV.

Ты можешь сделать это:
if (isset($_POST['csv'])){
 $DataProcessed = DataProcessingFunction();
}

if (isset($DataProcessed) && $DataProcessed){
  header("Location: /path/to/form/page.php");
  exit();
}

Это очистит почтовые данные, отправленные в предыдущем запросе. При обновлении форма не будет отправлена ​​повторно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы