Eu tentei abrir o arquivo com
window.open("file:///D:/Hello.txt");
O navegador não permite abrir um arquivo local dessa maneira, provavelmente por motivos de segurança. Eu quero usar os dados do arquivo no lado do cliente. Como posso ler o arquivo local em JavaScript?
javascript
Joval
fonte
fonte
null
em cadaonClick
caso deve fazer o truque, consulte: stackoverflow.com/a/12102992/63011FileReader
, mas um comentário aodisplayContents
exposto acima: observe que configuraçõesinnerHTML
como essa com conteúdo não confiável podem ser uma vulnerabilidade de segurança. (Para ver isso por si mesmo, criar umabad.txt
contendo algo como<img src="/nonexistent" onerror="alert(1);">
e ver que o alerta é executado-lo poderia ser mais códigos maliciosos.)innerHTML
portextContent
. Obrigado por seu comentário.DOMContentLoaded
evento para isso.O recurso fileReader HTML5 permite que você processe arquivos locais, mas estes DEVEM ser selecionados pelo usuário, você não pode fazer root no disco do usuário procurando arquivos.
Atualmente, eu uso isso com versões de desenvolvimento do Chrome (6.x). Não sei o que outros navegadores suportam.
fonte
Como não tenho vida e quero esses quatro pontos de reputação, para mostrar meu amor (respostas positivas) por pessoas que são realmente boas em codificação, compartilhei minha adaptação do código de Paolo Moretti . Basta usar a
openFile(
função para ser executada com o conteúdo do arquivo como primeiro parâmetro)
.fonte
clickElem()
, basta ligarfileInput.click()
. (pelo menos na versão mais recente do Chrome)Experimentar
mas o usuário precisa executar uma ação para escolher o arquivo
Mostrar snippet de código
fonte
O método de solicitação xmlhttp não é válido para os arquivos no disco local porque a segurança do navegador não nos permite fazê-lo. Mas podemos substituir a segurança do navegador criando um atalho-> clique com o botão direito do mouse-> propriedades no destino "... browser location path.exe "anexar - Permitir acesso ao arquivo a partir de arquivos.Este é testado no chrome, no entanto, deve-se tomar cuidado para que todas as janelas do navegador sejam fechadas e o código seja executado no navegador aberto por esse atalho.
fonte
Você não pode. Novos navegadores como Firefox, Safari etc. bloqueiam o protocolo 'arquivo'. Funcionará apenas em navegadores antigos.
Você precisará fazer o upload dos arquivos que deseja.
fonte
O Javascript normalmente não pode acessar arquivos locais em novos navegadores, mas o objeto XMLHttpRequest pode ser usado para ler arquivos. Portanto, na verdade, é o Ajax (e não o Javascript) que está lendo o arquivo.
Se você deseja ler o arquivo
abc.txt
, pode escrever o código como:Agora
txt
contém o conteúdo do arquivo abc.txt.fonte