Ir ao conteúdo
  • Cadastre-se

Javascript Input File - HTML + JS


Posts recomendados

Oi pessoal, 

Seguinte, tenho aqui no meu pc um arquivo.html e um .js, no html tenho um Input File onde quero fazer o upload de arquivos excel. 

 

<input type="file">

 

Feito o upload, gostaria de apenas com JavaScript pegar esse arquivo e salvar em uma outra pasta.

É possível fazer isso? E como faria?

 

Obs: Sei que é possível fazer isso com outra linguagem de programação como PHP, Python e etc, mas a intenção é saber se é possível apenas com JS.

 

Valeuu galera

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Vini_154 Você não pode.  Por questões de segurança. Pelo menos até onde eu sei. Mas dá para contornar isso..

 

Por exemplo, você pode usar o filesaver.js  que é uma biblioteca javascript que permite que você crie um link para "fazer o download" do arquivo que você enviar pelo file input. Isso só funciona no lado do cliente. OU seja, não há linguagem de programação server-side ali... como php,  por exemplo.

 

Exemplo: de código usando o filesaver.js:

HTML:

<button id="salvar">Salvar</button>
<input type="file" id="campoSelect" />

<script src="//cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2014-11-29/FileSaver.min.js"></script>

 

Javascript:

//Insere  o campo select e o botão salvar em variáveis
var openbtn = document.getElementById("campoSelect"),
    saveBtn = document.getElementById("salvar");

//chama o evento de salvar pelo click no botão "salvar"
saveBtn.addEventListener("click", salvar, false);

//Função para salvar o arquivo no próprio computador.
function salvar() {
    
    //pergunta para você colocar um nome no arquivo. o segundo argumento "arquivo.xls" é pré-definido. você pode escrever outro nome se quiser.
    var filename = prompt("insira o nome do arquivo ", "arquivo.xls");
    var data = {
        temp: 36.5,
        humidity: 85.4
    };
    var string = JSON.stringify (data);
    console.log (string);
    var blob = new Blob([string], {
        type: "text/plain;charset=utf-8"
    });
    
    //força um download do arquivo que você colocou no campo file
    saveAs(blob, filename);
}

 

Veja um exemplo funcional: https://jsfiddle.net/dife/vrnc187b/2/

Basicamente, escolha um arquivo excel no campo file, e clique em salvar...  vai abrir um prompt perguntando para você colocar um nome no arquivo.. escreva o nome junto com a extensão.. e ai ele vai "forçar a fazer um download" para seu computador", permitindo você escolher a pasta onde salvar.  Note que se você não colocar um nome, ele vai colocar como "arquivo.xls"  como foi definido ali no código.

 

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!