2016-08-18 4 views
0

Ich habe ein Byte-Array von ziparchive in der Datenbank. Wenn ich die Daten aus der Datenbank abrufe und versuche, zurück in Ziparchive zu konvertieren, wird ein Fehler ausgegeben. Gibt es eine Möglichkeit, aus dem Bytearray in zipArchive zu konvertieren?Wie konvertiert man Byte-Array in zip-Archiv in C#?

+0

Hat meine Antwort funktioniert @Eraiarasu? – webmaster

Antwort

1

Von diesen answer Ich denke, es möglich ist, Ihren Stream Byte-Array zu Zip-Archiv zu konvertieren:

using (var compressedFileStream = new MemoryStream()) { 
    //Create an archive and store the stream in memory. 
    using (var zipArchive = new ZipArchive(compressedFileStream, ZipArchiveMode.Update, false)) { 
     foreach (var caseAttachmentModel in caseAttachmentModels) { 
      //Create a zip entry for each attachment 
      var zipEntry = zipArchive.CreateEntry(caseAttachmentModel.Name); 

      //Get the stream of the attachment 
      using (var originalFileStream = new MemoryStream(caseAttachmentModel.Body)) { 
       using (var zipEntryStream = zipEntry.Open()) { 
        //Copy the attachment stream to the zip entry stream 
        originalFileStream.CopyTo(zipEntryStream); 
       } 
      } 
     } 

    } 

    return new FileContentResult(compressedFileStream.ToArray(), "application/zip") { FileDownloadName = "Filename.zip" }; 
} 

Hier mit der Linie new FileContentResult(compressedFileStream.ToArray(), "application/zip") { FileDownloadName = "Filename.zip" };, wenn Sie bereits in Zip-Datei umgewandelt, dann können Sie Ihren Stream Byte konvertieren Array in Zip-Archiv wie folgt:

new FileContentResult(your_stream_byte_array, "application/zip") { FileDownloadName = "Filename.zip" }; 
+0

Vielen Dank für Ihre Antwort. Ich habe bereits das in der Datenbank gespeicherte ZIP-File und Stream-Byte-Array erstellt. Jetzt möchte ich dieses Bytearray zu ZipArchive konvertieren – Eraiarasu

+0

Also ich denke, der letzte Schritt ist, Ihre Stream-Byte-Array verwenden und erstellen Sie Ihre Zip-Archiv wie folgt: 'new FileContentResult (your_stream_byte_array," application/zip ") {FileDownloadName =" Dateiname.zip " }; 'hier, – webmaster

+0

Hat es funktioniert? @Eraiarasu – webmaster

Verwandte Themen