problem sa citanjem niza bajtova

Započeo Marko Аcović, 25.03.2009, 18:11

prethodna tema - sledeća tema

Marko Аcović

Razvijam neku pda aplikaciju u C#. Sa pda uredjaja slikam sliku u jpg formatu koju pretvaram u niz bajtova i koju saljem na php server POST metodom.
Evo koda kojim saljem sliku:

HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(sURL);
webReq.Method = "POST";
webReq.ContentType = "application/x-www-form-urlencoded";
webReq.ContentLength = imageToSend.Length;
                       
// posalji sliku serveru
Stream dataStream = webReq.GetRequestStream();
dataStream.Write(imageToSend, 0, imageToSend.Length);
dataStream.Close();

gde je imageToSend slika pretvorena u byte array a sURL adresa akcije u kontroleru kojem saljem podatke.
Imam problem kako da taj niz bajtova na serveru ponovo pretvorim u jpg sliku.
Ima li neko ideju?

Marko Аcović

Vidim da nikog nema sa predlozima.  Sreca pa sam u medjuvremenu dosao do resenja. Koristio sam base64_encode (decode) funkcije. Na klijentskoj strani sam kodovao sliku a na php serveru sam je dekodovao.

Klijentska strana:

string postData = "data=" + Convert.ToBase64String(imageToSend, 0, imageToSend.Length);
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
                       
webReq = (HttpWebRequest)WebRequest.Create(sURL);
webReq.Method = "POST";
webReq.ContentType = "application/x-www-form-urlencoded";
webReq.ContentLength = byteArray.Length;

// posalji sliku serveru
dataStream = webReq.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();


Serverska strana:

header('Content-type: image/jpg');

$str = '/9j/4AAQSkZJRgABAQEAwADAAAD...'; // kodovana slika
$str = str_replace(' ', '+', $str);
echo base64_decode($str);


To je to. Pozz B-)