ASP .NET MVC 5 - Usando arquivos ZIP - II


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:


José Carlos Macoratti