domenica 22 luglio 2018

asp.net mvc download multiple files

Nel caso che abbiamo la necessita di effettuare il download di più file, dovremmo comprimerli e poi effettuare in ActionResult effettuare il download.

Qui di seguito il frammento di codice

Spazio dei nomi:

using System.IO;
using System.IO.Compression;


Metodo Action Per il dowload.

 [HttpGet]
        public ActionResult DownloadMultiFiles(string id)
        {

 using (var memoryStream = new MemoryStream())
             {
                 using (var ziparchive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
                 {

                       var files = GetFiles();

                       foreach (var mioFile in files )
                     {
                     
                         var entry = ziparchive.CreateEntry(mioFile.Nome, CompressionLevel.Fastest);
                         using (var entryStream = entry.Open())
                         {
                             mioFile.FileByteStream.CopyTo(entryStream);
                         }
                     }
       }
                                return File(memoryStream.ToArray(), "application/zip", "Attachments.zip");
 }

 }

Qui di seguito per richiamare la funzione.

 window.location.href = '@Url.Action("DownloadMultiFiles", "Doc")

Nessun commento: