Puedes usar este metodo para sacar un archivo comprimido de la DB ya teniendolo cargado en un Byte[] (this.Plantilla)
Código C#:
Ver originalpublic virtual System.IO.MemoryStream GetLayout()
{
System.IO.MemoryStream sw = new System.IO.MemoryStream();
using (System.IO.MemoryStream ms = new System.IO.MemoryStream(this.Plantilla))
{
using (System.IO.Compression.GZipStream gzipStream = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress))
{
int buffer = 1000000;
int offset = 0;
int totalBytesRead = 0;
Byte[] data = new Byte[buffer];
bool ft = true;
while (true)
{
int bytesRead = gzipStream.Read(data, offset, buffer);
if (ft == true && bytesRead == 0)
{
bytesRead = gzipStream.Read(data, offset, buffer);
}
Byte[] tempData = null;
ft = false;
if (bytesRead == 0)
{
tempData = data;
data = new Byte[totalBytesRead];
for (int i = 0; i < totalBytesRead; i++)
{
data[i] = tempData[i];
}
break;
}
tempData = data;
data = new Byte[data.Length + bytesRead];
tempData.CopyTo(data, 0);
offset += bytesRead;
totalBytesRead += bytesRead;
}
sw.Write(data, 0, data.Length);
return sw;
}
}
}
Saludos