none
Convertir un Archivo a Base64 y retornarlo mediante un Web Service RRS feed

  • Pregunta

  • Buenos días.

    Necesito convertir un archivo existente en Base64 y devolverlo mediante un servicio web. Realmente no tengo muy claro que significa esa conversión y como se devuelve un archivo mediante el servicio. Agradezco alguna ayuda frente al tema.

    jueves, 9 de noviembre de 2017 15:30

Respuestas

  • Cuando conviertes a Base64, el resultado es un string. Así que cuando te dicen "devolver un archivo en base 64", en realidad no tienes que devolver un archivo, sino que devuelves un String. Me imagino que sí que sabes como devolver un string desde el web service.

    ¿Y cómo se construye un string en base 64 a partir del archivo? Pues puede ser simplemente algo tan sencillo como esto:

    string cadenaADevolver = Convert.ToBase64String(System.IO.File.ReadAllBytes(rutaDelArchivo));

    jueves, 9 de noviembre de 2017 17:28
    Moderador

Todas las respuestas

  • Nelson, la idea es convertir un archivo binario que contiene como sabes caracteres que no pueden ser representados por texto y por consiguiente no pueden ser representados por un web service ya que utiliza XML que no es mas que un lenguaje de texto, por este motivo debes codificar cada byte de tu binario a un string utilizando el algoritmo de conversion BASE64, lo puedes hacer algo así: 

    using (Image image = Image.FromFile(Path)) { using (MemoryStream m = new MemoryStream()) { image.Save(m, image.RawFormat); byte[] imageBytes = m.ToArray(); // Convert byte[] to Base64 String string base64String = Convert.ToBase64String(imageBytes); return base64String; } }


    • Editado Ramiro Ledesma jueves, 9 de noviembre de 2017 16:25 correcion
    jueves, 9 de noviembre de 2017 16:24
  • Cuando conviertes a Base64, el resultado es un string. Así que cuando te dicen "devolver un archivo en base 64", en realidad no tienes que devolver un archivo, sino que devuelves un String. Me imagino que sí que sabes como devolver un string desde el web service.

    ¿Y cómo se construye un string en base 64 a partir del archivo? Pues puede ser simplemente algo tan sencillo como esto:

    string cadenaADevolver = Convert.ToBase64String(System.IO.File.ReadAllBytes(rutaDelArchivo));

    jueves, 9 de noviembre de 2017 17:28
    Moderador