Con los siguientes fragmentos de código vamos a permitir codificar un fichero en C# (.NET) y transmitirlo vía POST a un script que previamente hayamos preparado en ASP.NET.
Método para convertir un array de bytes a String para transferirlo por POST:
public static string ByteArrayToString(byte[] array_datos)
{
StringBuilder cadena = new StringBuilder(array_datos.Length * 2);
foreach (byte b in array_datos)
{
cadena.AppendFormat("{0:x2}", b);
}
return cadena.ToString();
}
Código de ejemplo para construir un formulario y enviarlo por POST:
FileInfo fi = new FileInfo(path);
Byte[] datos = File.ReadAllBytes(path);
String postData = "par1=1234";
postData += "&par2=5678";
postData += "&fichero=" + ClaseEjemplo.ByteArrayToString(datos);
Método para leer un String y convertirlo en array de bytes, recibido por POST
public static byte[] StringToByteArray(String cadena)
{
Int32 caracteres = cadena.Length;
byte[] array_datos = new byte[caracteres / 2];
for (int i = 0; i < caracteres; i += 2)
array_datos[i / 2] = Convert.ToByte(cadena.Substring(i, 2), 16);
return array_datos;
}
Lectura de datos en el destino
Para leer datos en el destino accederemos al formulario de la siguiente forma:
String fichero = (Request.Form["fichero"]);
Byte[] bytes = ClaseEjemplo.StringToByteArray(fichero);