2015-06-15 19 views
6

Ho bisogno di un modo per ottenere tutte le immagini da una cartella locale per una presentazione che verrà eseguita anche localmente. Non ci sarà alcun tentativo per un server di prendere le immagini da una cartella locale poiché ciò non è possibile/il caso.Ottenere tutte le immagini dalla cartella locale

Ho bisogno di usare .js dato che non posso usare .php (che sarebbe più semplice) dato che gira su un PC locale.

dire che ho bisogno di prendere tutte le immagini da imparare/

Ho provato varie soluzioni che si possono trovare here, here e here ma nessuno ha funzionato.

+0

Si avrebbe bisogno di un '' e un po 'JavaScript per questo. –

+0

informazioni sull'attributo 'src' – madalinivascu

+0

@ Ja͢ck Il tipo di input consente di caricare manualmente le immagini da una cartella. Sarebbe un inizio ma ho bisogno del JavaScript per passare attraverso la cartella e ottenere tutte le immagini. – Alin

risposta

9

Penso che l'opzione migliore sia utilizzare la nuova API file in Javascript. Ha un sacco di funzioni per leggere i file dal file system.

<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> 

(codice here)

È possibile trovare una buona spiegazione e disponibile il codice here.

+0

Questo mi ha aiutato, ho appena postato il codice modificato nel post :) Grazie. – Alin

+1

@Alin: molto buono. Se lo desideri, per favore inserisci il codice che stai utilizzando in una risposta a parte, se lo desideri. Non inserire il codice "risposta" nella domanda. –

+0

Ok, lo farà :) – Alin

3

Grazie alla risposta di Patrick Hofman, ho modificato il codice e si è conclusa con questo:

$(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); 

}); 
Problemi correlati