HTML-Code in upload_files/04_step/preview.php

<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vorschaubild</title>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Roboto+Condensed&family=Roboto:ital,wght@0,400;0,500;1,400&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="/css/styles.css">
    <link rel="stylesheet" href="/css/formstyles.css">
    <style>
        #wrapper {
            text-align: center;
            background-color: white;
            min-height: 236px;
            padding: 20px 0 10px 0;
            margin-bottom: 25px;
        }
        .preview_img {
            height: 100%;
            max-height: 120px;
            width: auto;
            margin: 25px auto 12px auto;
            display: block;
        }
    </style>
</head>
<body>
    <div id="container">
        <h1>Vorschaubild</h1>
        <h2>Verbesserte Usability mit JavaScript</h2>
        <p>Ziel: Der User soll eine Vorschau vom Bild sehen, das er hochladen möchte. Ausserdem wird die Bildgrösse angezeigt.</p>
        <p>mdn web docs: <a href="https://developer.mozilla.org/en-US/docs/Web/API/FileReader" target="_blank">FileReader</a><br>
        mdn web docs: <a href="https://developer.mozilla.org/en-US/docs/Web/API/File_API/Using_files_from_web_applications" target="_blank">Using files from web applications</a></p>
       
        <form method="post" enctype="multipart/form-data">
            <input type="hidden" name="MAX_FILE_SIZE" value="30000">
            <div id="wrapper">
                <input type="file" accept="image/*" name="myFile" id="myFile">
            </div>
            <div class="form_control" style="text-align: center;">
                <button type="submit" name="go" class="btn btn-blue" disabled>Upload (disabled)</button>
            </div>
        </form>

    </div>
<script>
const inputElement = document.getElementById("myFile");
const wrapper = document.getElementById("wrapper");

inputElement.addEventListener("change", handleFiles, false);
function handleFiles() {
    const fileList = this.files;
    // Theoretisch ginge auch eine Vorschau von mehreren Bildern,
    // wir behandeln nur den Upload von EINEM Bild
    const myFile = fileList[0]

    if (myFile.type.startsWith("image/")) {
        const previewImg = document.createElement("img");
        previewImg.classList.add("preview_img");
        previewImg.file = myFile;
        wrapper.append(previewImg);

        const legend = document.createElement("p");
        legendText = document.createTextNode("Dateigrösse: " + myFile.size + " Bytes");
        legend.appendChild(legendText);
        wrapper.append(legend);

        const reader = new FileReader();
        reader.onload = (e) => {
            previewImg.src = e.target.result;
        };
        reader.readAsDataURL(myFile);
    }
    else {
        alert("Unerlaubter Dateityp, bitte wählen Sie ein Bild aus");
    }
}
</script>
</body>
</html>