Como abrir um arquivo de disco local com JavaScript?

Eu tentei abrir um arquivo com

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

O browser não permite abrir um ficheiro local desta forma, provavelmente por razões de segurança. Eu quero usar os dados do arquivo's no lado do cliente. Como posso ler um ficheiro local em JavaScript?

O HTML5 fileReader facility permite que você processe arquivos locais, mas estes DEVEM ser selecionados pelo usuário, você não pode ir roteando sobre o disco do usuário procurando por arquivos.

Atualmente uso isso com versões de desenvolvimento do Chrome (6.x). Eu não'não sei que outros navegadores o suportam.

Comentários (2)

Você pode't. Novos navegadores como Firefox, Safari, etc. bloqueiam o 'file' protocolo. Ele só funcionará em navegadores antigos.

Você'terá que fazer o upload dos arquivos que você quer.

Comentários (0)

O Javascript normalmente não pode acessar arquivos locais em novos navegadores, mas o objeto XMLHttpRequest pode ser usado para ler arquivos. Então é realmente o Ajax (e não o Javascript) que está lendo o arquivo.

Se você quiser ler o arquivo abc.txt, você pode escrever o 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();

Agora o txt contém o conteúdo do arquivo abc.txt.

Comentários (5)