2014-06-13 2 views
0

Я использую ниже код для динамического обновления потока памяти на лету и создания файла excel внутри этого zip-файла ..... с использованием dotnetzip dll ... ...Архив находится либо в неизвестном формате, либо в поврежденном формате с использованием библиотеки Dotnetzip для zip-файла

public ActionResult ExportToExcel() 
    { 

     byte[] file; 

     DataTable dt = common.CreateExcelFile.ListToDataTable(GetSearchDraftPRResults()); 
     common.CreateExcelFile excelFileForExport = new CreateExcelFile(); 
     file = excelFileForExport.CreateExcelDocumentAsStream(dt, targetFilename); 
     Response.Buffer = true; 

     var memStream = new MemoryStream(file); 

     var memoryStream = new MemoryStream(); 
     using (var zip = new ZipFile()) 
     { 
      zip.AddEntry("Generate-Excel.xlsx","", memStream);     
      zip.Save(memoryStream); 
     } 

     memStream.Seek(0, SeekOrigin.Begin); 
     return File(memoryStream, "application/octet-stream", "archive.zip"); 

    } 

Я получаю файл, созданный в почтовый файл, но когда я нажимаю на Archive.zip файл я получаю ошибка

оШИБКА

Архив либо в неизвестном формате или поврежденные

бы любой, пожалуйста, помогите на это, почему я получаю поврежденную почтовый файл, делая молнию на лету, который был бы очень благодарен мне.

ответ

0

Я исправил свою проблему с помощью этой строки memoryStream.Seek(0, SeekOrigin.Begin);, заменив это memStream.Seek(0, SeekOrigin.Begin);