Estou tentando escrever um leitor de arquivo de texto simples, criando uma função que leva no caminho do arquivo e converte cada linha de texto em uma matriz de caracteres, mas não está funcionando.
function readTextFile() {
var rawFile = new XMLHttpRequest();
rawFile.open("GET", "testing.txt", true);
rawFile.onreadystatechange = function() {
if (rawFile.readyState === 4) {
var allText = rawFile.responseText;
document.getElementById("textSection").innerHTML = allText;
}
}
rawFile.send();
}
o que há de errado aqui?
Isso ainda não parece funcionar depois de alterar um pouco o código de uma revisão anterior e agora está me dando umaXMLHttpRequest
exceção 101.
Eu testei isso no Firefox e ele funciona, mas no Google Chrome simplesmente não funciona e continua me dando uma exceção 101. Como posso fazer isso funcionar não apenas no Firefox, mas também em outros navegadores (especialmente o Chrome )?
javascript
file-io
xmlhttprequest
Danny
fonte
fonte
status
dos0
, bem como200
.Respostas:
Você precisa verificar o status 0 (como ao carregar arquivos localmente
XMLHttpRequest
, você não recebe um status retornado porque não é de aWebserver
)E especifique
file://
no seu nome de arquivo:fonte
file:///User/Danny/Desktop/javascriptWork/testing.txt
na barra de url do seu navegador e veja se você pode ver o arquivo ..true
. Se essa foi umalocal
pesquisa simples , a configuração de assíncrona parafalse
está ok, masonreadystatechange
não é necessária enquanto estiver definida como falsa. Aqui está a documentação: w3schools.com/ajax/ajax_xmlhttprequest_send.aspVisite Javascripture ! E vá na seção readAsText e tente o exemplo. Você será capaz de saber como o readAsText função de FileReader funciona.
fonte
Após a introdução da API de busca no javascript, a leitura do conteúdo do arquivo não pôde ser mais simples.
lendo um arquivo de texto
lendo um arquivo json
Atualização 30/07/2018 (isenção de responsabilidade):
Atualização-2 (isenção de responsabilidade):
fonte
Referer
". Acho que isso significa adeus aos bons ol'FileReaders e HttpRequests (e não vou perdê-las um pouco;)Fetch API cannot load file:///C:/Users/path/to/file/file.txt. URL scheme must be "http" or "https" for CORS request.
fonte
var reader = new FileReader();
meioreader.readAsBinaryString(..)
- ele lê o conteúdo do meu arquivo de texto. Limpo, elegante, funciona como um encanto. Melhor resposta neste tópico para mim - obrigado!Jon Perryman,
Sim, o js pode ler arquivos locais (consulte FileReader ()), mas não automaticamente: o usuário deve passar o arquivo ou uma lista de arquivos para o script com um html
<input type=file>
.Com js, é possível processar (exibição de exemplo) o arquivo ou a lista de arquivos, algumas de suas propriedades e o conteúdo do arquivo ou arquivos.
O que o js não pode fazer por razões de segurança é acessar automaticamente (sem a entrada do usuário) ao sistema de arquivos do seu computador.
Para permitir que o js acesse o fs local automaticamente, é necessário criar não um arquivo html com o js dentro dele, mas um documento hta.
Um arquivo hta pode conter js ou vbs dentro dele.
Mas o executável hta funcionará apenas em sistemas Windows.
Esse é o comportamento padrão do navegador.
Também o google chrome trabalhou na API do fs, mais informações aqui: http://www.html5rocks.com/en/tutorials/file/filesystem/
fonte
Provavelmente você já experimentou, digite "false" da seguinte maneira:
fonte
Tente criar duas funções:
fonte
outro exemplo - meu leitor com a classe FileReader
fonte
Solução moderna:
Quando o usuário faz o upload de um arquivo de texto por meio dessa entrada, ele será registrado no console. Aqui está uma demonstração funcional do jsbin .
Aqui está uma versão mais detalhada:
Atualmente (janeiro de 2020) isso funciona apenas no Chrome e Firefox, verifique aqui a compatibilidade se você estiver lendo isso no futuro: https://developer.mozilla.org/en-US/docs/Web/API/Blob/text
Em navegadores antigos, isso deve funcionar:
fonte
Usando a função Buscar e Assíncrona
fonte
Isso pode ajudar,
fonte
Adicionando a algumas das respostas acima, esta solução modificada funcionou para mim.
....
....
fonte
- leia o texto do arquivo javascript
- o texto do log do console do arquivo usando javascript
- firefox do Google chrome e mozilla;
no meu caso, eu tenho essa estrutura de arquivos:
o resultado console.log:
fonte
fonte
Obtenha dados do arquivo local em js (data.js) load:
arquivo de data.js como:
O unixTime dinâmico queryString impede o cache.
AJ trabalha na web http: //.
fonte
As chamadas locais AJAX no Chrome não são suportadas devido à mesma política de origem.
A mensagem de erro no chrome é assim: "Solicitações de origem cruzada não são suportadas para esquemas de protocolo: http, dados, chrome, extensão de cromo, https".
Isso significa que o chrome cria um disco virtual para cada domínio para manter os arquivos servidos pelo domínio usando protocolos http / https. Qualquer acesso a arquivos fora deste disco virtual é restrito sob a mesma política de origem. Solicitações e respostas AJAX acontecem em http / https, portanto, não funcionam para arquivos locais.
O Firefox não impõe essa restrição; portanto, seu código funcionará bem no Firefox. No entanto, também existem soluções alternativas para o chrome: veja aqui .
fonte
Você pode importar minha biblioteca:
então, a função
fetchfile(path)
retornará o arquivo carregadoObservação: no Google Chrome, se o código HTML for local, os erros aparecerão, mas salvar o código HTML e os arquivos on-line e executar o arquivo HTML on-line funciona.
fonte
Para ler um texto de arquivo local
JavaScript
usando o chrome, o navegador chrome deve ser executado com o argumento--allow-file-access-from-files
para permitir que o JavaScript acesse o arquivo local, você pode lê-lo usandoXmlHttpRequest
o seguinte:fonte
Como ler um arquivo local?
Ao usar isso, você carregará um arquivo por loadText () e o JS aguardará de forma assíncrona até que o arquivo seja lido e carregado, depois exibirá a função readText (), permitindo que você continue com sua lógica JS normal (você também pode escrever uma tentativa de captura bloco na função loadText () no caso de surgir algum erro), mas neste exemplo eu o mantenho no mínimo.
fonte
Eu sei, estou atrasado nesta festa. Deixe-me mostrar o que eu tenho.
Esta é uma leitura simples do arquivo de texto
Eu espero que isso ajude.
fonte