Hola, acá te dejo un link que encontré hace tiempo intentanto hacer lo mismo pero para una Pocket PC:
http://www.mygnet.net/articulos/c_sh..._de_datos.1161
Y este el code que utilizo para guardar una imagen en un arreglo de bytes en la BD y luego para exportarlo a una imagen.
Código PHP:
string sBase64 = "";
//-----------------------------------------------------------------------
//asi lo guardo
string camino;
camino = Path.Combine(AppPath, "CapturedSignature1.bmp");
System.IO.FileStream fs = new System.IO.FileStream(camino, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
byte[] MyData = new byte[fs.Length];
br.Read(MyData, 0, MyData.Length);
//Guardamos el arreglo de bytes
sBase64 = Convert.ToBase64String(MyData);
fs.Close();
fs = null;
br = null;
MyData = null;
//Aquí guardo el arreglo de bytes en la base de datos.
File.Delete(camino);
// -------------------------------------------------------------------
MessageBox.Show("Datos guardados satisfactoriamente", "Mensaje del Sistema", MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
//-----------------------------------------------------------------------
Código PHP:
/*Guardamos en una cadena la ruta de la imagen donde se descodificará. Es decir, despues de este proceso, estara guardada en el disco duro del servidor*/
string camino;
camino = Path.Combine(AppPath, "CapturedSignature1.bmp");
//Utilizamos un FileStream para crear un nuevo archivo temporal
FileStream fs = new FileStream(camino, FileMode.CreateNew, FileAccess.Write);
//Un BinaryWriter para escribir la imagen descodificada
BinaryWriter bw = new BinaryWriter(fs);
//Un arreglo de Bytes para descodificar la imagen
byte[] bytes;
bytes = Convert.FromBase64String(sBase64);
//Escribimos la imagen
bw.Write(bytes);
//Liberamos memoria
fs.Close();
bytes = null;
bw = null;
sBase64 = null;
Espero te sirva.
Saludos...