Básicamente, el usuario debe poder hacer clic en un enlace y descargar varios archivos PDF. Pero el Catch es que no puedo crear archivos en el servidor o en cualquier lugar. Todo tiene que estar en la memoria.Creación de archivos Zip desde Memory Stream C#
Pude crear un flujo de memoria y Response.Flush() como PDF, pero ¿cómo puedo comprimir varias secuencias de memoria sin crear archivos?
Aquí está mi código:
Response.ContentType = "application/zip";
// If the browser is receiving a mangled zipfile, IIS Compression may cause this problem. Some members have found that
// Response.ContentType = "application/octet-stream" has solved this. May be specific to Internet Explorer.
Response.AppendHeader("content-disposition", "attachment; filename=\"Download.zip\"");
Response.CacheControl = "Private";
Response.Cache.SetExpires(DateTime.Now.AddMinutes(3)); // or put a timestamp in the filename in the content-disposition
byte[] abyBuffer = new byte[4096];
ZipOutputStream outStream = new ZipOutputStream(Response.OutputStream);
outStream.SetLevel(3);
#region Repeat for each Memory Stream
MemoryStream fStream = CreateClassroomRoster();// This returns a memory stream with pdf document
ZipEntry objZipEntry = new ZipEntry(ZipEntry.CleanName("ClassroomRoster.pdf"));
objZipEntry.DateTime = DateTime.Now;
objZipEntry.Size = fStream.Length;
outStream.PutNextEntry(objZipEntry);
int count = fStream.Read(abyBuffer, 0, abyBuffer.Length);
while (count > 0)
{
outStream.Write(abyBuffer, 0, count);
count = fStream.Read(abyBuffer, 0, abyBuffer.Length);
if (!Response.IsClientConnected)
{
break;
}
Response.Flush();
}
fStream.Close();
#endregion
outStream.Finish();
outStream.Close();
Response.Flush();
Response.End();
Esto crea un archivo zip pero no hay ningún archivo en su interior
estoy usando usando iTextSharp.text - para crear pdf usando ICSharpCode.SharpZipLib.Zip - Comprimir para
Gracias, Kavita
¿Alguna vez encontró una solución? Necesito hacer exactamente lo mismo. – sbonkosky
no, yo no ... Probé todas las soluciones en línea, pero nada funcionó ... espero que lo encuentren – Arshya
Este enlace puede ayudar: http://snipplr.com/view/47762/ – updev