Hi Felix,
da verwendest Du innerhalb der Schleife eine nur dort existierende Variable
reader
. Wenn Du sie dann am Ende außerhalb der Schleife verwenden willst, gibt es die dort natürlich nicht.
Stimmt. Das war falsch rauskopiert. In meinem laufenden Script ist reader.readAsDataURL() ebenfalls Teil der for-Schleife.
Das Umkopieren von
event.target.files
zufiles
ist nur scheinbar eine Erleichterung. Man möchte manchmal wissen, ob man es mit einem Array, oder einer anderen Art von Liste zu tun hat. Das wird bei der Variablefiles
nicht deutlich. Man kann aberevent.target.files
ansehen, dass es ein Array sein muss.
Wie gesagt, das war ein Überbleibsel aus dem Tutorial-Script.
Hier der nochmals geänderte Ausschnitt. forEach mag ich irgendwie nicht, ich komme mit herkömmlichen for-Schleifen besser klar. Rolfs Vorschlag mit for in führt übrigens in reader.readAsDataURL(file) zu folgender Fehlermeldung: Uncaught TypeError: FileReader.readAsDataURL: Argument 1 does not implement interface Blob.
Laut Konsole wird bei for in nicht nur ein File-Objekt so wie bei for, sondern auch ein function item() erzeugt. Liegts daran? Oder hab ichs falsch angewendet?
function dateiauswahl(event) {
for(let i=0; i<event.target.files.length; i++) {
//for(let i in event.target.files) { => führt zu Fehlermeldung in reader.readAsDataURL(file)
const file = event.target.files[i];
const reader = new FileReader();
reader.addEventlistener("load", function(event) {
console.log(file.name); // Ausgabe: Dateiname
img.src = event.target.result; // Vorschaubild
});
reader.readAsDataURL(file);
}
}
Schöne Grüße
Nico