Hoje veremos como usar arquivos ZIP usando as classes do .NET Framework em aplicações ASP .NET MVC 5. |
|
Continuando a primeira parte do artigo veremos agora como criar um arquivo compactado a partir de uma seleção de arquivos do usuário e fazer o download.
Vamos usar o mesmo projeto criado no artigo anterior.
Recursos usados :
Criando um projeto ASP .NET MVC 5
Abra o projeto MvcZip criado no artigo anterior e crie as pastas pdfs e temp no projeto.
Usaremos a pasta pdfs para armzenar os arquivos para download e a pasta temp para copiar os arquivos selecionados pelo usuário para serem compactados.
Abra o controlador ArquivosController e crie o método Action BaixarArquivos com o código abaixo:
Este método vai retornar em uma ViewBag a relação de arquivos existentes na pasta pdfs do projeto.
Crie também a respectiva view BaixarArquivos.cshtml com o código a seguir:
O código da view acima vai exibir a relação de arquivos e permitir que o usuário selecione e submeta sua seleção. Ao fazer isso será invocado método Action Download do controlador ArquivosController.
Crie o método Action Download no controlador conforme mostra o código a seguir:
Os arquivos
selecionados pelo usuário são recebidos no parâmetro
arquivos, e , o código verifica se existe um arquivo chamado
arquivoZIP.zip de operações anteriores e, se
existir, ele será excluído.
A seguir limpamos o conteúdo da pasta temp e os
arquivos selecionados são copiados do diretório de origem esta a pasta.
Usamos então o método ZipFile.CreateFromDirectory
para gerar um arquivo zip com o conteúdo do diretório
temp e salvamos o resultado no arquivo
arquivoZIP.zip.
A respectiva view Download.cshtml será usada
apenas para exibir uma alerta para caso o usuário envie uma seleção vazia ou
quando houver uma falha na compactação dos arquivos.
Abaixo temos o código da view Download:
Para concluir ajuste o arquivo _Layout.cshtml da pasta \Views\Shared para criar um link para a Action BaixarArquivos do controlador ArquivosController :
Executando o projeto teremos o seguinte resultado:
O exemplo esta bem simplificado para facilitar o entendimento mas pode ser melhorado realizando validações e tratamentos no código.
Pegue o projeto aqui : MvcZip2.zip
'Ora, o homem
natural não compreende as coisas do Espírito de Deus, porque lhe parecem
loucura; e não pode entendê-las, porque elas se discernem espiritualmente.'
1 Coríntios 2:14
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net
VB .NET - Usando um serviço web para localizar CEP - Macoratti.net
VB .NET - Localizando CEP com a API do Google - Macoratti.net
VB .NET - Localizando um endereço pelo cep usando um webservice ...