Bild aus einem Input mit Javascript anzeigen?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Hallo,

Hier ein kleines Beispiel:

<!DOCTYPE html>
<html lang="de">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            .hidden {display: none;}
        </style>
    </head>
    <body>
        <input type="file" accept="image/png, image/jpeg" id="input">
        <button type="button">Bild anzeigen</button>
        <div class="image hidden"></div>
        <script>
            const input = document.querySelector('#input');
            const image = document.querySelector('.image');
            input.addEventListener('change', e => {
                const file = input.files[0];
                if(file.type.match('image/*')) {
                    const fileReader = new FileReader();
                    fileReader.addEventListener('load', e => {
                        const img = document.createElement('img');
                        img.setAttribute('src', e.target.result);
                        image.appendChild(img);
                    });
                    fileReader.readAsDataURL(file);
                }
            });
            const button = document.querySelector('button');
            button.addEventListener('click', e => {
                image.classList.toggle('hidden');
            });
        </script>
    </body>
</html>

Für Rückfragen und eventuelle Unklarheiten stehe ich gerne zur Verfügung.

LG

das problem ist , du hast jetzt in input nach auswahl einer datei , noch gar nciht die datei eingelesen sondern einfach nur der browserlogik gesagt, diese datei darf genutzt werden .

du kannst die datei natürlich einlesen und dann als source geben .


https://coderwall.com/p/jzdmdq/loading-image-from-local-file-into-javascript-and-getting-pixel-data

oder auch

https://w3collective.com/preview-selected-img-file-input-js/

will man das auf dem server speichern dann eh mit server script verarbeiten