private void ProcessResponse(IMessage message, ITransportHeaders headers, ref Stream stream, object state) { if (headers != null) { if ((string)headers["edonkeyCompress"] == "Yes") { //Descomprimir respuesta CompressionType c = CompressionType.Zip; int com = System.Convert.ToInt32(headers["CompressionType"]); if (Enum.GetName(typeof(CompressionType), com) != null) { c = (CompressionType)com; Descompresion descompresor = new Descompresion(stream, c); Stream descomprimido = descompresor.ToStream; if (descomprimido != null) { headers["CompressionType"] = null; headers["edonkeyCompress"] = null; //Si descomentamo no podemos hacer la depuracion //headers["TamañoComprimido"] = null; //headers["Tamaño"] = null; stream = descomprimido; } } else { stream = null; } } } }
/// <summary> /// metodo que descomprime los datos del archivo compreso /// </summary> /// <param name="ArchivoEntrada">Archivo compreso que se ingresa a la API</param> /// <param name="PathContendor">Ruta donde se encuentra el archivo</param> /// <param name="PathAEscribir">Ruta donde se escribira el resultado de la descompresion</param> public void ProcesoDecompresionHuffman(IFormFile ArchivoEntrada, string PathContendor, string PathAEscribir) { string NombreArchivo = string.Empty; byte[] ArchivoAByte = File.ReadAllBytes((PathContendor + ArchivoEntrada.FileName)); byte[] ArchivoDecompresoHuff = Descompresion.DescompresionCompleta(ArchivoAByte); var RutaArchivo = Path.Combine(PathAEscribir, NombreArchivoAComprimir); RutaContenedora = PathContendor; RutaAEscribir = PathAEscribir; tamanoCompreso = ArchivoAByte.Length; tamanoDescompreso = ArchivoDecompresoHuff.Length; NombreArchivoADescomprimir = ArchivoEntrada.FileName.ToString();//captura nombre del archivo original File.WriteAllBytes(RutaArchivo, ArchivoDecompresoHuff); }
public void Post([FromForm(Name = "archivo")] IFormFile file, string name) { Descompresion descomprimiendo = new Descompresion(); string ruta = @"C:\CompresionesHechas\"; string fullPath = ruta + file.FileName; byte[] archivo = new byte[file.Length]; using (FileStream fs = new FileStream(fullPath, FileMode.Open)) { int count; int sum = 0; while ((count = fs.Read(archivo, sum, archivo.Length - sum)) > 0) { sum += count; } } }
private void ProcessRequest(IMessage message, ITransportHeaders headers, ref Stream stream, ref object state) { state = true; if ((string)headers["edonkeyCompress"] == "Yes") { //Descomprimir y quitar la cabecera CompressionType c=CompressionType.Zip; int com=System.Convert.ToInt32(headers["CompressionType"]); if (Enum.GetName(typeof(CompressionType),com) != null) { c=(CompressionType)com; Descompresion descompresor=new Descompresion(stream,c); Stream descomprimido = descompresor.ToStream; if (descomprimido != null) { headers["CompressionType"] = null; headers["edonkeyCompress"] = null; //Si descomentamos no podemos hacer la depuracion //headers["TamañoComprimido"] = null; //headers["Tamaño"] = null; stream = descomprimido; } else { stream = null; Exception exp = new Exception(string.Format("{0}:Error, could not be decompressed.", m_Provider.ToString())); IMessage responseMsg = new ReturnMessage(exp, (IMethodCallMessage)message); System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf= new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); bf.Serialize(stream,responseMsg); } } else { stream = null; Exception exp = new Exception(string.Format("{0}:Error, unknown method of compression.", m_Provider.ToString())); IMessage responseMsg = new ReturnMessage(exp, (IMethodCallMessage)message); System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf= new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); bf.Serialize(stream,responseMsg); } } }
private void ProcessResponse(IMessage message, ITransportHeaders headers, ref Stream stream, object state) { if (headers != null) { if ((string)headers["edonkeyCompress"] == "Yes") { //Descomprimir respuesta CompressionType c=CompressionType.Zip; int com=System.Convert.ToInt32(headers["CompressionType"]); if (Enum.GetName(typeof(CompressionType),com) != null) { c =(CompressionType)com; Descompresion descompresor =new Descompresion(stream,c ); Stream descomprimido = descompresor.ToStream; if (descomprimido != null) { headers["CompressionType"] = null; headers["edonkeyCompress"] = null; //Si descomentamo no podemos hacer la depuracion //headers["TamañoComprimido"] = null; //headers["Tamaño"] = null; stream = descomprimido; } } else { stream=null; } } } }