#c# #arrays #asp.net-mvc #download
#c# #массивы #asp.net-mvc #Скачать
Вопрос:
У меня проблема с загрузкой многих файлов из базы данных в формат xlsx. Я попытался заархивировать файлы, но заархивированная папка не сохраняется.
Ниже будет показан мой образец решения:
protected void ZipDownload(Listlt;IPfSpreadsheetDetailsgt; filesList) { ZipFile zip = new ZipFile(); foreach (var file in filesList) { zip.AddEntry(file.Name, file.RelSpreadsheetFiles.SpreadsheetBinary); } var zipMs = new System.IO.MemoryStream(); zip.Save(zipMs); byte[] fileData = zipMs.GetBuffer(); zipMs.Seek(0, SeekOrigin.Begin); zipMs.Flush(); Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.Buffer = true; Response.AddHeader("Content-Length", fileData.Length.ToString()); Response.AddHeader("content-disposition", "attachment;filename=docs.zip "); Response.ContentType = "application/zip"; Response.BinaryWrite(fileData); Response.Flush(); Response.End(); }
или
public FileResult DownloadMultipleFiles(Listlt;IPfSpreadsheetDetailsgt; filesList) { using (System.IO.MemoryStream ms = new MemoryStream()) { using (var archive = new ZipArchive(ms, ZipArchiveMode.Create, true)) { foreach (var file in filesList) { var entry = archive.CreateEntry(file.Name ".pdf", CompressionLevel.Fastest); using (var zipStream = entry.Open()) { zipStream.Write(file.RelSpreadsheetFiles.SpreadsheetBinary, 0, file.RelSpreadsheetFiles.SpreadsheetBinary.Length); } } } return File(ms.ToArray(), "application/zip", "Archive.zip"); } }
но ничего не работает 🙁