Nico R.: Warum steht Variable in Funktion nicht zur Verfügung (Frage zum Wiki-Artikel „File Upload“)

Beitrag lesen

problematische Seite

Hallo zusammen,

ich versuche gerade das Script auf SelfHTML zum File Upload etwas anzupassen. Ich möchte erreichen, dass die Bild-Informationen name und size nicht in einer separaten Liste (dateiListe), sondern direkt unter dem jeweiligen Bild (in thumblist) erscheinen.

Dabei stoße ich auf das Problem, dass var=f aus der for-Schleife im FileReader nicht zur Verfügung steht. Auf var="test" kann ich dagegen zugreifen. Ich stehe irgendwie auf dem Schlauch... Warum ist das so?

function dateiauswahl(evt) {

  var files = evt.target.files;

  for (var i = 0, f; f = files[i]; i++) {
    var test = "test";
    var reader = new FileReader();
    reader.onload = (function (theFile) {
      return function (e) {
        console.log(f); // Ausgabe: undefined
        console.log(test); // Ausgabe: test
      };
    })(f);
  }
}

Schöne Grüße

Nico