Ver Mensaje Individual
  #6 (permalink)  
Antiguo 02/11/2010, 06:24
jonnyfrm
 
Fecha de Ingreso: septiembre-2008
Mensajes: 22
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: NET y archivo en MYSQL

Cita:
Iniciado por gedarufi Ver Mensaje
Puedes usar este metodo para sacar un archivo comprimido de la DB ya teniendolo cargado en un Byte[] (this.Plantilla)

Código C#:
Ver original
  1. public virtual System.IO.MemoryStream GetLayout()
  2.         {
  3.             System.IO.MemoryStream sw = new System.IO.MemoryStream();
  4.  
  5.             using (System.IO.MemoryStream ms = new System.IO.MemoryStream(this.Plantilla))
  6.             {
  7.                 using (System.IO.Compression.GZipStream gzipStream = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress))
  8.                 {
  9.                     int buffer = 1000000;
  10.                     int offset = 0;
  11.                     int totalBytesRead = 0;
  12.                     Byte[] data = new Byte[buffer];
  13.                     bool ft = true;
  14.  
  15.                     while (true)
  16.                     {
  17.                         int bytesRead = gzipStream.Read(data, offset, buffer);
  18.  
  19.                         if (ft == true && bytesRead == 0)
  20.                         {
  21.                             bytesRead = gzipStream.Read(data, offset, buffer);
  22.                         }
  23.  
  24.                         Byte[] tempData = null;
  25.  
  26.                         ft = false;
  27.  
  28.                         if (bytesRead == 0)
  29.                         {
  30.                             tempData = data;
  31.                             data = new Byte[totalBytesRead];
  32.  
  33.                             for (int i = 0; i < totalBytesRead; i++)
  34.                             {
  35.                                 data[i] = tempData[i];
  36.                             }
  37.  
  38.                             break;
  39.                         }
  40.  
  41.                         tempData = data;
  42.                         data = new Byte[data.Length + bytesRead];
  43.  
  44.                         tempData.CopyTo(data, 0);
  45.  
  46.                         offset += bytesRead;
  47.                         totalBytesRead += bytesRead;
  48.                     }
  49.  
  50.                     sw.Write(data, 0, data.Length);
  51.  
  52.                     return sw;                        
  53.                 }
  54.             }
  55.         }

Saludos

Perdona, podrias ponerlo en .NET, no me llevo bien con el C.
Y por cierto, muchas gracias.