¿Cómo abrir un archivo de disco local con JavaScript?

He intentado abrir el archivo con

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

El navegador no permite abrir un archivo local de esta manera, probablemente por razones de seguridad. Quiero utilizar los datos del archivo en el lado del cliente. ¿Cómo puedo leer el archivo local en JavaScript?

El HTML5 fileReader facility permite procesar archivos locales, pero éstos DEBEN ser seleccionados por el usuario, no se puede andar buscando archivos en el disco del usuario.

Actualmente uso esto con versiones de desarrollo de Chrome (6.x). No sé qué otros navegadores lo soportan.

Comentarios (2)

No se puede. Los nuevos navegadores como Firefox, Safari, etc. bloquean el protocolo 'file'. Sólo funcionará en los navegadores antiguos.

Tendrás que subir los archivos que quieras.

Comentarios (0)

Normalmente, Javascript no puede acceder a los archivos locales en los nuevos navegadores, pero el objeto XMLHttpRequest puede utilizarse para leer archivos. Así que en realidad es Ajax (y no Javascript) el que está leyendo el archivo.

Si quieres leer el archivo abc.txt, puedes escribir el código como

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

Ahora txt contiene el contenido del archivo abc.txt.

Comentarios (5)