Como abrir um arquivo texto usando Javascript [RESOLVIDO]

1. Como abrir um arquivo texto usando Javascript [RESOLVIDO]

Bartolomeu Silva
nao_eh_osimpson

(usa Linux Mint)

Enviado em 13/06/2020 - 14:37h

Cares amigues,

Após uma cansativa procura, encontrei vários resultados mas não funcionam em meu código. Preciso abrir um arquivo.txt(também pode ser .csv), ler seu conteúdo e para depois manipular suas informações. Minha procura me indicou os comandos:
OpentextFile 
e
XMLHttpRequest 
. Mas ambos resultam em erros.

let fs=Server.CreateObject("Scripting.FileSystemObject")
let dados=fs.CreateTextFile("c:\test.txt",true)
let arquivo = dados.OpentextFile('GET','registro_usuarios.txt', false);

Erro
OpentextFile 

ReferenceError: Server is not defined 


let dados = new XMLHttpRequest();
let arquivo = dados.open('GET','registro_usuarios.txt', false);

Erro do
XMLHttpRequest 
:
Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience. For more help http://xhr.spec.whatwg.org/ 


Acredito que o primeiro comando só funcione em Windows(utilizo Xubuntu) e o segundo aparentemente foi depreciado(https://xhr.spec.whatwg.org/#xmlhttprequesteventtarget). Segundo a fala deste usuário em um fórum gringo, o Javascript não fornece tal método por questões de segurança:

Pretty much, you can't - javascript very deliberately does not have file manipulation functions for security reasons. Imagine if you could: a rogue website could access your HDD and read (or write) and file it wanted to...


Acredito que talvez já tenha a resposta em mãos, mas por estar aprendendo a linguagem sozinho, eu não percebi a resposta debaixo de meu nariz. Com o Python consigo fazer essa tarefa com extrema facilidade, mas eu preciso realmente utilizar o Javascript. Devo apelar para algum framework como o JSON ou DJANGO ou existe alguma maneira de resolver o problema apenas com Javascript puro?

PS:A versão de meu navegador é: Mozilla Firefox 77.0.1
PS2:O arquivo estará localizado numa file do servidor.

Agradeço desde já sua compreensão.


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 13/06/2020 - 19:03h

Boa noite.
Com a função abaixo, recebo os dados do servidor (externo).

function pegaip01(){
var script=document.createElement('script');
script.src='http://ip-api.com/json/?callback=DADOS_IP&fields=33292287';
document.body.appendChild(script);
}

//Obs.: É chamada a função DADOS_IP, a qual trata os dados, para o meu propósito.
//Ou com o XMLHttpRequest()

function pegaip02(){

var url = 'http://ip-api.com/json/?lang=pt-BR&fields=33292287';
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var dados = JSON.parse(xmlhttp.response);
DADOS_IP(dados);
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
}

Fica a dica.....
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________

3. Re: Como abrir um arquivo texto usando Javascript

Perfil removido
removido

(usa Nenhuma)

Enviado em 13/06/2020 - 20:44h

Com JavaScript puro, somente com chamada AJAX ou através de um input do tipo file.
Lembrando que JavaScript puro não tem acesso aos recursos do sistema operacional (é inteiramente restrito ao browser). Para isso, usa-se o Node.js que executa o JavaScript no lado servidor e tem acesso aos recursos do sistema operacional.


4. Re: Como abrir um arquivo texto usando Javascript [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 13/06/2020 - 21:57h


ru4n escreveu:

Com JavaScript puro, somente com chamada AJAX ou através de um input do tipo file.
Lembrando que JavaScript puro não tem acesso aos recursos do sistema operacional (é inteiramente restrito ao browser).
Para isso, usa-se o Node.js que executa o JavaScript no lado servidor e tem acesso aos recursos do sistema operacional.


Boa noite ru4n.
Com javascript "puro", dependendo da configuração do servidor, "pega" sim!
Segue a página completa, com a função citada acima:
<!DOCTYPE html>
<html lang="pt-BR">

<head>
<title>:: PEGAIP::</title>

<style>
body{margin:0}
#titulo {top: 6px;line-height: 0%;font-size: 4vw;color: #fff;text-shadow: 1px 1px 4px #000;}
#PRINCIPAL{-webkit-box-shadow: 0 0 10px 2px rgba(0, 0, 0, 0.5);box-shadow: 0px 0px 10px 2px rgba(0, 0, 0, 0.5);text-align: center;border-radius: 8px;position:absolute;width:60%;height:auto;overflow-y:auto;overflow-x:auto;left: 20%;top:2.5%;}
</style>
</head>
<body onload="pegaip()">

<div id="PRINCIPAL">
<hr>
<h2 id="titulo">&#9733; :: Dados do IP :: &#9733;</h2>
<h3 id="saida"></h3>
</div>
<script>
function MOSTRA_DADOS(dados){
document.getElementById('saida').innerHTML="<hr>"
for (var z in dados){
document.getElementById('saida').innerHTML += z.toUpperCase()+": "+ dados[z]+"<br>";
}
}

function pegaip(){
var script=document.createElement('script');
script.src='http://ip-api.com/json/?callback=MOSTRA_DADOS&fields=33292287';
document.body.appendChild(script);
}
</script>

</body>
</html>


______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


5. Re: Como abrir um arquivo texto usando Javascript [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 13/06/2020 - 22:44h

msoliver:

O primeiro script que vc postou faz uma chamada AJAX, e o segundo incorpora um script js externo. JavaScript puro (client-side) não consegue ler/escrever arquivos diretamente do sistema de arquivos, pois o browser é isolado da máquina host por motivos de segurança. O que o autor do tópico esta tentando fazer é acessar um arquivo texto ("c:\test.txt") através de uma função inexistente no JavaScript client side (fs).




6. Erro... Mas obrigado pela atenção

Bartolomeu Silva
nao_eh_osimpson

(usa Linux Mint)

Enviado em 13/06/2020 - 23:14h

Boa noite,

Segui seu conselho e utilizei seus comandos(obviamente adaptei para meu código), entretanto surgiu um erro:
Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience. For more help http://xhr.spec.whatwg.org/  


Mas seu código abriu meus olhos e acho que agora consigo seguir em frente contornando este problema. Quero agradecer a você pela sua atenção e a todos também por terem tentado me ajudar(e conseguiram).

Grato.
+------+
| bart |
+------+


7. Re: Como abrir um arquivo texto usando Javascript [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/06/2020 - 11:58h

nao_eh_osimpson:

Use o fetch para fazer requisições:
https://developer.mozilla.org/pt-BR/docs/Web/API/Fetch_API/Using_Fetch




8. Re: Como abrir um arquivo texto usando Javascript [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 14/06/2020 - 17:53h


ru4n escreveu:

msoliver:

O primeiro script que vc postou faz uma chamada AJAX, e o segundo incorpora um script js externo. JavaScript puro (client-side) não consegue ler/escrever arquivos diretamente do sistema de arquivos, pois o browser é isolado da máquina host por motivos de segurança. O que o autor do tópico esta tentando fazer é acessar um arquivo texto ("c:\test.txt") através de uma função inexistente no JavaScript client side (fs).



Obrigado pelo esclarecimento.

______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


9. Re: Como abrir um arquivo texto usando Javascript

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 14/06/2020 - 18:28h

nao_eh_osimpson escreveu:

Boa noite,

Segui seu conselho e utilizei seus comandos(obviamente adaptei para meu código), entretanto surgiu um erro:
Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience. For more help http://xhr.spec.whatwg.org/  


Mas seu código abriu meus olhos e acho que agora consigo seguir em frente contornando este problema. Quero agradecer a você pela sua atenção e a todos também por terem tentado me ajudar(e conseguiram).

Grato.
+------+
| bart |
+------+

Boa noite nao_eh_osimpson.
Essa mensagem é decorrente da especificação na requisição:
(true (asynchronous) or false (synchronous)).
Exemplo:
xhttp.open("GET", "url" false); //Dá mensagem
xhttp.open("GET", "url" true); //Não dá mensagem


______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts