Gerando arquivo físico para download
Por vezes em nosso projeto, pode surgir a necessidade de gerar um arquivo a partir de um determinado conteúdo, como por exemplo: uma lista de itens na tela, instruções que sejam interessantes para o usuário possuir impresso, um boleto bancário e outros.
Esses arquivos temporários são gerados no momento da solicitação do usuário e após ser enviado ao usuário, esses arquivos ficam nos servidores por até 10 minutos, podendo ser gerado novamente através de outra solicitação.
Pré-requisitos
Antes de começar a seguir os passos do tutorial é preciso ter certeza de que se tem um ambiente minimamente preparado para reproduzir o exemplo. Abaixo estão os requisitos principais.
Requisitos:
Projeto do tipo mobile ou web criado. Caso haja dúvidas de como criar esse tipo de projeto acesse o link ( Criar projeto );
Visão geral: exemplo
Nesse tutorial iremos aprender a gerar um arquivo para download. Nesse exemplo simples, iremos informar um texto e o mesmo será adicionado ao arquivo e enviado ao usuário para download.
A estrutura de arquivos do projeto possui diferenças durante o período de desenvolvimento e em produção, após gerar o arquivo *.war. Acesse a documentação Arquivo para mais detalhes.
Criando a função de blocos
Clique com o botão de menu do mouse na pasta Servidor (Localização: Blocos de Programação/Servidor ), depois clique em Novo. Selecione, em seguida, a opção Bloco de Programação. Depois selecione o Bloco de Programação Vazio, clique em Avançar, preencha o campo Nome do Arquivo com "Bloco" e Nome da Função com "GerarArquivo" e, por fim, clique em Finalizar.
O nosso objetivo é concatenar o endereço, passando o endereço da pasta de arquivos temporários da aplicação com o separador de diretórios "/" e o nome do arquivo, que nesse exemplo será "novoArquivo.txt". Siga os passos abaixo (Figura 3) para associar os blocos.
Crie uma variável com nome "link" (categoria Variáveis) e arraste o bloco de Definir variável de mesmo nome para dentro da função.
Associe, em seguia, o bloco Criar texto com (categoria Texto) e adicione mais um campo de concatenação.
No primeiro parâmetro do bloco Criar texto com, adicione o bloco Pasta reciclável da aplicação (categoria Arquivo);
No segundo parâmetro do bloco Criar texto com, insira o bloco Separador de arquivos (categoria Arquivo);
No terceiro parâmetro do bloco Criar texto com, associe o bloco Texto (categoria Texto) e escreva o texto "novoArquivo.txt".
Dado sequência, nesse exemplo estamos passando o texto "Olá mundo!" (Figura 4), porém para uma situação real, seria possível passar uma lista de itens, um bloco que gere boletos em PDF ou qualquer outra coisa.
Crie uma variável com nome "nome" (categoria Variáveis), arraste o bloco de Definir variável de mesmo nome para dentro da função, associe o bloco Texto (categoria Texto) e escreva "Olá, mundo!".
Em seguida, crie uma variável com nome "arquivo", associe o bloco Abrir arquivo para escrita (categoria Arquivo).
No parâmetro Caminho do arquivo adicione a variável "link";
No parâmetro Texto adicione a variável "texto".
Por fim, arraste o bloco Iniciar download de arquivo físico (categoria Arquivo) e no parâmetro Arquivo associe a variável "link".
Adicionando evento
Para testarmos, vamos adicionar um botão na nossa home (Localização: Formulários/Web/Autenticado/.
Arraste o componente Botão para a área de edição, clique na aba de Propriedades e altere o Conteúdo dele para "Download". Mude para a aba Eventos, clique em "..." do campo Ao Clicar. Na janela Ao Clicar clique em "..." do campo Selecione o bloco, associe o bloco de programação GerarArquivo, clique em Selecionar e em OK ao final.
Testando o download do arquivo
Salve tudo e rode o projeto. Abra a aplicação no navegador web, informe no login e senha "admin" e confirme para acessar a página home. Clique no botão Download (Figura 6) que abrirá o explorador de arquivos do seu computador, salve o "novoArquivo.txt" onde preferir.
Nesta página