2015-06-15 7 views
6

Ich brauche eine Möglichkeit, alle Bilder aus einem lokalen Ordner für eine Präsentation, die auch lokal ausgeführt werden. Es wird nicht versucht, dass ein Server die Bilder aus einem lokalen Ordner aufnimmt, da dies nicht möglich ist.Holen Sie alle Bilder aus dem lokalen Ordner

Ich brauche .js, da ich .php nicht verwenden kann (was einfacher wäre), da es auf einem lokalen PC läuft.

sagen, dass ich alle Bilder nehmen müssen von / lernen

Ich habe verschiedene Lösungen versucht, die here gefunden werden kann, here und here aber keiner arbeitete.

+0

Sie würden eine 'benötigen ' und einige JavaScript dafür. –

+0

Erfahren Sie mehr über das Attribut 'src' – madalinivascu

+0

@ Ja͢ck Mit dem Eingabetyp können Sie Bilder manuell aus einem Ordner laden. Das wäre ein Anfang, aber ich brauche das JavaScript, um durch den Ordner zu gehen und alle Bilder zu bekommen. – Alin

Antwort

9

Ich denke, Ihre beste Option ist es, die neue Datei-API in Javascript zu verwenden. Es hat viele Funktionen, um Dateien aus dem Dateisystem zu lesen.

<input type="file" id="fileinput" multiple /> 
<script type="text/javascript"> 
    function readMultipleFiles(evt) { 
    //Retrieve all the files from the FileList object 
    var files = evt.target.files; 

    if (files) { 
     for (var i=0, f; f=files[i]; i++) { 
       var r = new FileReader(); 
      r.onload = (function(f) { 
       return function(e) { 
        var contents = e.target.result; 
        alert("Got the file.n" 
          +"name: " + f.name + "n" 
          +"type: " + f.type + "n" 
          +"size: " + f.size + " bytesn" 
          + "starts with: " + contents.substr(1, contents.indexOf("n")) 
        ); 
       }; 
      })(f); 

      r.readAsText(f); 
     } 
    } else { 
      alert("Failed to load files"); 
    } 
    } 

    document.getElementById('fileinput').addEventListener('change', readMultipleFiles, false); 
</script> 

(Code von here)

Sie eine gute Erklärung finden können und hilfreichen Code here.

+0

Das hat mir geholfen, ich habe gerade den geänderten Code in den Post geschrieben :) Danke. – Alin

+1

@Alin: Sehr gut. Wenn Sie möchten, geben Sie den Code, den Sie verwenden, in einer separaten Antwort an, wenn Sie möchten. Geben Sie in der Frage keinen "Antwort" -Code ein. –

+0

Ok, werde ich tun :) – Alin

3

Dank Patrick Hofman Antwort, modifizierte ich den Code und endete mit auf den Punkt:

$(document).ready(function(){ 

    function readMultipleFiles(evt) { 
    //Retrieve all the files from the FileList object 
    var files = evt.target.files; 

    if (files) { 
     for (var i=0, f; f=files[i]; i++) { 
       var r = new FileReader(); 
      r.onload = (function(f) { 
       return function(e) { 
        var contents = e.target.result; 
        $('body').append('<h1>' + f.name + '</h1><img src="learn/' + f.name + '"/>'); 
       }; 
      })(f); 

      r.readAsText(f); 
     } 
    } else { 
      alert("Failed to load files"); 
    } 
    } 

    document.getElementById('fileinput').addEventListener('change', readMultipleFiles, false); 

}); 
Verwandte Themen