2015-06-02 17 views
5

Desidero modificare this code in modo che funzioni solo con un file specifico, ma non riesco a capire il parametro URL corretto e tutti gli esempi di codice che ho trovato utilizzare una finestra di selezione dei file.Come aprire un file locale con Javascript FileReader()

<!DOCTYPE html> 
<html> 
    <head> 
    <title>reading file</title> 
    <script type="text/javascript"> 

     var reader = new FileReader(); 

     function readText(that){ 

      if(that.files && that.files[0]){ 
       var reader = new FileReader(); 
       reader.onload = function (e) { 
        var output=e.target.result; 

        //process text to show only lines with "@":    
        output=output.split("\n").filter(/./.test, /\@/).join("\n"); 

        document.getElementById('main').innerHTML= output; 
       };//end onload() 
       reader.readAsText(that.files[0]); 
      }//end if html5 filelist support 
     } 
</script> 
</head> 
    <body> 
    <input type="file" onchange='readText(this)' /> 
    <div id="main"></div> 
    </body> 

Perché non funziona quando cambio il codice:

<body> 
    <input type="file" onchange='readText(this)' /> 
    <div id="main"></div> 
</body> 

a:

<body onload="readText('file:///C:/test.txt')"> 
    <div id="main"></div> 
</body> 
+2

Non è possibile leggere i file locali del genere, l'utente deve utilizzare una finestra di selezione file o fare un file di trascinare e rilasciare in modo che il browser per accedere a file locali, altrimenti sarebbe essere un enorme problema di sicurezza –

risposta

6

browser non danno tale capacità a causa delle restrizioni di sicurezza. Non ti è permesso leggere i file locali, finché l'utente non selezionerà il file specifico nella finestra di selezione dei file (o non lo farà con il drag-n-drop). Ecco perché tutti gli esempi di codice utilizzano la finestra di selezione dei file.

Maggiori dettagli Does HTML5 allow you to interact with local client files from within a browser

Problemi correlati