Bonjour à tous,

Je recherche le moyen de transférer une image ( enfin le flux d'une image, en byte[] ) vers une page web, via HTTP

Mon code actuel C# ressemble grossièrement au suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
public string UploadPicture(string url, byte[] content)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.ContentType = "application/octet-stream";
            request.Method = "POST";
 
            byte[] param = Encoding.GetEncoding(shopEncoding).GetBytes("source-byte=");
            byte[] endOfString = Encoding.GetEncoding(shopEncoding).GetBytes("\n");
 
            List<byte> allBytes = new List<byte>();
            for (int i = 0; i < param.Length; i++)
                allBytes.Add(param[i]);
            for (int i = 0; i < content.Length; i++)
                allBytes.Add(content[i]);
            for (int i = 0; i < endOfString.Length; i++)
                allBytes.Add(endOfString[i]);
 
            request.ContentLength = allBytes.Count;
            using (Stream newStream = request.GetRequestStream())
            {
                newStream.Write(allBytes.ToArray(), 0, allBytes.Count);
            }
 
            string result = string.Empty;
 
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            using (Stream mystream = response.GetResponseStream())
            {
                using (StreamReader mystreamreader = new StreamReader(mystream, Encoding.GetEncoding(_websiteEncoding)))
                {
                    result = mystreamreader.ReadToEnd().Replace("\r\n", "\n").Replace("\n", "\r\n");
                }
            }
 
return result;
        }
Le PHP de la page de réception ressemble à ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
$file_name = dirname(__FILE__).'/images-temp/test.jpg';
 
					$file = fopen( $file_name,'x+' );
					if( !fwrite( $file,$GLOBALS['HTTP_RAW_POST_DATA']) ) return ;
					fclose( $file );
print 'succès';
L'image "test.jpg" obtenu est cependant illisible...

Quelqu'un pourrait-il m'aiguiller ? (ou m'avertir si ce que je souhaite faire n'est pas possible !)

Merci.