How can I zip (In the server) multiple files to one archive?
                
                A: 
                
                
              
            Codeplex has Dot Net Zip http://dotnetzip.codeplex.com/
You can also try System.IO.Compression
                  Raj More
                   2010-09-20 13:52:51
                
              
                
                A: 
                
                
              
            Following code uses our Rebex ZIP and shows how to add files into the ZIP archive without using any temp file. The ZIP is then sent to the web browser.
// prepare MemoryStream to create ZIP archive within
using (MemoryStream ms = new MemoryStream())
{
    // create new ZIP archive within prepared MemoryStream
    using (ZipArchive zip = new ZipArchive(ms))
    {            
         // add some files to ZIP archive
         zip.Add(@"c:\temp\testfile.txt");
         zip.Add(@"c:\temp\innerfile.txt", @"\subfolder");
         // clear response stream and set the response header and content type
         Response.Clear();
         Response.ContentType = "application/zip";
         Response.AddHeader("content-disposition", "filename=sample.zip");
         // write content of the MemoryStream (created ZIP archive) 
         // to the response stream
         ms.WriteTo(Response.OutputStream);
    }
}
// close the current HTTP response and stop executing this page
HttpContext.Current.ApplicationInstance.CompleteRequest();
For more info see ZIP tutorial.
Alternative solution:
SharpZipLib and DotNetZip a widely used free alternatives.
                  Martin Vobr
                   2010-10-05 10:10:23