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.