void ImagesListView_ItemCommand(object sender, RadListViewCommandEventArgs e) { if (e.CommandName == "DownloadAllAsZip") { RadListViewDataItem item = ListViewAlbums.SelectedItems[0]; int parentID = Convert.ToInt32(item.GetDataKeyValue("ID").ToString()); string albumName = item.GetDataKeyValue("Name").ToString(); List <DataContext.Image> allImagesFromAlbum = (from a in context.Images where a.AlbumID == parentID select a).ToList(); MemoryStream memStream = new MemoryStream(); Package = ZipPackage.Create(memStream); foreach (var image in allImagesFromAlbum) { Stream stream = new MemoryStream(image.Data); Package.AddStream(stream, image.FileName); } Package.Close(false); memStream.Position = 0; if (memStream != null && memStream.Length > 0) { Response.Clear(); Response.AddHeader("content-disposition", "attachment; filename=" + albumName + ".zip"); Response.ContentType = "application/zip"; Response.BinaryWrite(memStream.ToArray()); Response.End(); } } if (e.CommandName == "DownloadImage") { RadListViewDataItem item = e.ListViewItem as RadListViewDataItem; int imageID = Convert.ToInt32(item.GetDataKeyValue("ID").ToString()); DataContext.Image image = (from i in context.Images where i.ID == imageID select i).First(); byte[] data = image.Data; string name = image.FileName; if (data != null && data.Length > 0) { Response.Clear(); Response.ContentType = "application/octet-stream"; Response.AddHeader("content-disposition", "attachment; filename=" + name); Response.BinaryWrite(data); Response.End(); } } }
public void Save(object parameter) { PersistenceManager manager = new PersistenceManager(); this.compressedStream = new MemoryStream(); ZipPackage zipPackage = ZipPackage.Create(this.compressedStream); this.rawStream = manager.Save(parameter); this.rawStream.Position = 0L; zipPackage.AddStream(this.rawStream, "persistence", ZipCompression.Default, DateTime.Now.Date); zipPackage.Close(false); this.UncompressedSize = this.rawStream.Length; this.CompressedSize = this.compressedStream.Length; }
void ImagesListView_ItemCommand(object sender, RadListViewCommandEventArgs e) { if (e.CommandName == "DownloadAllAsZip") { RadListViewDataItem item = ListViewAlbums.SelectedItems[0]; int parentID = Convert.ToInt32(item.GetDataKeyValue("ID").ToString()); string albumName = item.GetDataKeyValue("Name").ToString(); List<DataContext.Image> allImagesFromAlbum = (from a in context.Images where a.AlbumID == parentID select a).ToList(); MemoryStream memStream = new MemoryStream(); Package = ZipPackage.Create(memStream); foreach (var image in allImagesFromAlbum) { Stream stream = new MemoryStream(image.Data); Package.AddStream(stream, image.FileName); } Package.Close(false); memStream.Position = 0; if (memStream != null && memStream.Length > 0) { Response.Clear(); Response.AddHeader("content-disposition", "attachment; filename=" + albumName + ".zip"); Response.ContentType = "application/zip"; Response.BinaryWrite(memStream.ToArray()); Response.End(); } } if (e.CommandName == "DownloadImage") { RadListViewDataItem item = e.ListViewItem as RadListViewDataItem; int imageID = Convert.ToInt32(item.GetDataKeyValue("ID").ToString()); DataContext.Image image = (from i in context.Images where i.ID == imageID select i).First(); byte[] data = image.Data; string name = image.FileName; if (data != null && data.Length > 0) { Response.Clear(); Response.ContentType = "application/octet-stream"; Response.AddHeader("content-disposition", "attachment; filename=" + name); Response.BinaryWrite(data); Response.End(); } } }