Come aprire un file disco locale con JavaScript?

Ho provato ad aprire il file con

window.open("file:///D:/Hello.txt");

Il browser non permette di aprire un file locale in questo modo, probabilmente per motivi di sicurezza. Voglio usare i dati del file sul lato client. Come posso leggere il file locale in JavaScript?

La funzione HTML5 fileReader permette di elaborare i file locali, ma questi DEVONO essere selezionati dall'utente, non si può andare a rovistare nel disco dell'utente alla ricerca di file.

Attualmente lo uso con le versioni di sviluppo di Chrome (6.x). Non so quali altri browser lo supportino.

Commentari (2)

Non si può. I nuovi browser come Firefox, Safari ecc. bloccano il protocollo 'file'. Funzionerà solo sui vecchi browser.

Dovrai caricare i file che vuoi.

Commentari (0)

Javascript non può tipicamente accedere ai file locali nei nuovi browser, ma l'oggetto XMLHttpRequest può essere usato per leggere i file. Quindi è effettivamente Ajax (e non Javascript) che sta leggendo il file.

Se vuoi leggere il file abc.txt, puoi scrivere il codice come:

var txt = '';
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
  if(xmlhttp.status == 200 && xmlhttp.readyState == 4){
    txt = xmlhttp.responseText;
  }
};
xmlhttp.open("GET","abc.txt",true);
xmlhttp.send();

Ora txt contiene il contenuto del file abc.txt.

Commentari (5)