6
Uso DotNetZip para crear un archivo zip con una cadena en la memoria y descargarlo como un archivo adjunto con el siguiente código.SharpZipLib crear un archivo con una cadena en la memoria y descargarlo como un archivo adjunto
byte[] formXml = UTF8Encoding.Default.GetBytes("<form><pkg>Test1</pkg></form>");
byte[] formHtml = UTF8Encoding.Default.GetBytes("<html><body>Test2</body></html>");
ZipFile zipFile = new ZipFile();
zipFile.AddEntry("Form.xml", formXml);
zipFile.AddEntry("Form.html", formHtml);
Response.ClearContent();
Response.ClearHeaders();
Response.AppendHeader("content-disposition", "attachment; filename=FormsPackage.zip");
zipFile.Save(Response.OutputStream);
zipFile.Dispose();
Ahora tengo la obligación de hacer lo mismo con SharpZipLib. Cómo puedo hacerlo ? ¿SharpZipLib admite agregar archivos como una matriz de bytes?
Gracias. Esto funcionó! – Dimuthu
Una vez que finaliza la solicitud y finaliza la descarga, ¿se libera la memoria? También estoy haciendo algo muy similar, y puede haber muchos archivos. Necesito la memoria borrada después de que la solicitud termine. Estoy bastante seguro de que el recolector de basura se encargaría de eso, pero no estoy 100% seguro. – harsimranb
Se supone que el recolector de basura debe hacerlo. Pero para tipos de datos como "MemoryStream", debe llamar a Dispose() o usar declaraciones "using" para garantizar que la memoria se libera. –