Neste artigo você vai aprender a como criar um arquivo e salvar em JavaScript, vamos utilizar apenas recursos base da linguagem

criar um arquivo e salvar em JavaScript capa

Fala programador(a), beleza? Bora aprender mais sobre JavaScript!

Neste artigo vamos utilizar uma versão melhorada de um famoso snippet da internet

Nele vamos criar uma função que recebe três argumentos:

  • Dados do arquivo;
  • Nome do arquivo;
  • Tipo do arquivo;

Dentro da função temos a criação do arquivo em Blob, e realizamos uma ação para fazer o download dele

Em navegadores mais antigos criamos uma tag a apenas para o download

Já nos mais modernos temos acesso ao método msSaveOrOpenBlob, que faz para nós o trabalho sujo e torna mais simples esta ação

Veja o exemplo de código:

function download(data, filename, type) {
    const file = new Blob([data], {type: type});
    
    if (window.navigator.msSaveOrOpenBlob) {
        window.navigator.msSaveOrOpenBlob(file, filename);
        return
    }
    
    const a = document.createElement("a");
    const url = URL.createObjectURL(file);
        
    a.href = url;
    a.download = filename;
    
    document.body.appendChild(a);
    
    a.click();
    
    setTimeout(function() {
       document.body.removeChild(a);
       window.URL.revokeObjectURL(url);  
    },0); 
}

Em navegadores mais modernos acessamos o que está no if, e nos antigos o restante do código é executado

Note que a tag a também é excluída do documento após a operação

Deixe um comentário contando o que achou deste artigo 🙂

Quer aprender mais sobre JavaScript? Confira o vídeo abaixo:

Conclusão

Neste artigo você viu como criar um arquivo e salvar em JavaScript

Utilizamos uma estratégia que também funciona em navegadores antigos

Nossa função cria um novo arquivo, onde definimos: conteúdo, nome e tipo

E depois faz o download do mesmo, de forma imediata

Está buscando a sua primeira vaga como Programador? Confira o nosso treinamento completo clicando aqui.

Uma plataforma de cursos com projetos completos, comunidade de alunos e muito mais!

Há também o nosso canal no YouTube, com muito conteúdo gratuito de qualidade!

Subscribe
Notify of
guest

0 Comentários
Inline Feedbacks
View all comments