Transférer une image de c# vers une page web [3.5]
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:
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:
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.