Convertir entre String y Byte[] para transferir ficheros vía POST

WebProgramacion > Recursos sobre informática y tecnología > Programacion > C# > Convertir entre String y Byte[] para transferir ficheros vía POST
C#
Autor: Dámaso Velázquez Álvarez
Convertir entre String y Byte[] para transferir ficheros vía POST
Convertir entre String y Byte[] para transferir ficheros vía POST

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);

Deja tu opinión

la política de privacidad que declaro haber leído.

(*) Campos necesarios. El correo electrónico no será público.