Convertir archivo en byte[]

Hoy voy a mostrar como convertimos un archivo que seleccionamos desde un FileDialog en un array de bytes, esto nos va a servir si lo queremos pasar a un Servicio Web o si queremos guardarlo en un “Isolated Storage”.

Recordemos que desde Silverlight solamente podemos manipular archivos que hayamos seleccionado a través del FileDialog, no tenemos acceso al disco desde el plugin.

En este caso vamos a abrir un dialogo donde queremos seleccionar solamente archivos JPG.

OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Filter = "*.JPG|*.JPG";
fileDialog.Multiselect = false;
 
if (fileDialog.ShowDialog() == true) {
    FileStream fs = fileDialog.File.OpenRead();
    byte[] ImageData = new byte[fs.Length];
 
    fs.Read(ImageData, 0, System.Convert.ToInt32(fs.Length));
 
    fs.Close();
}

Vemos que al crear el array necesitamos saber la longitud, entonces utilizamos la propiedad Lenght del FileStream.

La función Read, lee todo el archivo y lo agrega en el array.

De esta manera tenemos nuestro archivo listo para pasarlo a un servicio o guardarlo.

No Comments