In meinem HTML-Formular habe ich Eingaben mit Typdatei abgelegt, zum Beispiel:
<input type="file" multiple>
Dann wähle ich mehrere Dateien aus, indem ich auf diese Eingabeschaltfläche klicke. Jetzt möchte ich eine Vorschau ausgewählter Bilder anzeigen, bevor ich das Formular abschicke. Wie geht das in HTML 5?
html
image-processing
upload
Hardik Sondagar
quelle
quelle
Antworten:
HTML5 wird mit der Datei-API-Spezifikation geliefert , mit der Sie Anwendungen erstellen können, mit denen der Benutzer lokal mit Dateien interagieren kann. Das heißt, Sie können Dateien laden und im Browser rendern, ohne die Dateien tatsächlich hochladen zu müssen. Teil der Datei-API ist die FileReader- Oberfläche, mit der Webanwendungen den Inhalt von Dateien asynchron lesen können.
Hier ist ein kurzes Beispiel, das die
FileReader
Klasse verwendet, um ein Bild als DataURL zu lesen und eine Miniaturansicht zu rendern, indem dassrc
Attribut eines Bild-Tags auf eine Daten-URL gesetzt wird:Der HTML-Code:
Der JavaScript-Code:
Hier ist ein guter Artikel zur Verwendung der Datei-APIs in JavaScript .
Das Code-Snippet im folgenden HTML-Beispiel filtert Bilder aus der Auswahl des Benutzers heraus und rendert ausgewählte Dateien in mehrere Miniaturansichten:
Code-Snippet anzeigen
quelle
document.getElementById("uploadImage").disabled = true
Hier habe ich mit jQuery die FileReader API verwendet.
HTML-Markup:
jQuery:
Hier im jQuery-Code überprüfe ich zuerst die Dateierweiterung. dh eine gültige Bilddatei , die verarbeitet werden soll, prüft dann, ob der Browser die FileReader- API unterstützt. Ja, dann wird nur verarbeitet, andernfalls wird die entsprechende Meldung angezeigt
Ausführlicher Artikel: Vorschau des Bildes vor dem Hochladen, jQuery, HTML5 FileReader () mit Live-Demo
quelle
var
infor loop
? Jedes Mal, wenn einefor loop
neue Variable iteriertreader
wird, wird deklariert.accept="image/*"
Attributs zum <Eingang> kann dazu beitragen, die Auswahl von Nicht-Bilddateitypen zu verhindern.Code-Snippet anzeigen
quelle
Stellen Sie für Hintergrundbilder sicher, dass Sie verwenden
url()
quelle