[ marko_81 @ 26.03.2009. 16:46 ] @
Radim na nekoj pda aplikaciji u C#. Sa pda uredjaja uzimam sliku u jpg formatu koju pretvaram u niz bajtova i koju saljem na php server POST metodom.
Evo koda kojim saljem sliku:
Code:

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.
Ima li neko ideju kako da iz php-a procitam niz bajtova na serverskoj strani i regenerisem sliku?
[ Man-Wolf @ 26.03.2009. 19:13 ] @
Stvarno nemam iskustva sa ovim, ali jesi probao ovako nesto:

Code:


$image = imagecreatefromstring($bytes); // $bytes je niz bajtova koje primas putem POST-a

if ($image) {
    header('Content-Type: image/jpeg');
    imagejpeg($image);
    imagedestroy($image);
}

[ Miroslav Ćurčić @ 26.03.2009. 22:17 ] @
Pogledaj šta dobijaš sa var_dump($_POST);
[ agvozden @ 27.03.2009. 08:21 ] @
Ukoliko saljes post zasto to ne bi mogao da uhvatis sa $_FILES[] ?
[ marko_81 @ 27.03.2009. 15:15 ] @
Hvala svima na predlozima. U medjuvremenu sam nasao resenje. Koristio sam base64_decode (encode) funkcije.
Code:

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();

Na serverskoj strani koristim sledece:
Code:

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

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