Windows phone文件上传
我在做WP8文件(比如图片)上传,代码如下,但是无法将获得的照片流转化为Byte[]数组,然后上传到服务器
我自己写的方法ImageToByte转化之后发现Byte[]中的每一项都为零,这个问题困扰我好长时间了,请WP的同仁们给点思路。
public void SendPhoto()
{
PhotoChooserTask photoChoose = new PhotoChooserTask();
photoChoose.Completed += ((s,e) =>
{
if (e.TaskResult == TaskResult.OK)
{
BitmapImage bi = new BitmapImage();
bi.SetSource(e.ChosenPhoto)
Image img = new Image();
img.Source = bi;
img.Stretch = Stretch.Fill;
HttpWebRequestFileUpload(e.ChosenPhoto); }
});
photoChoose.Show();
photoChoose.ShowCamera = true;
}
public void HttpWebRequestFileUpload(Stream str)
{
Uri uri = new Uri("http://app.12345.com/", UriKind.Absolute);
HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest;
request.ContentType = "image/jpeg";
request.Method = "POST";
request.BeginGetRequestStream(ldelegate =>
{
HttpWebRequest webRequest = ldelegate.AsyncState as HttpWebRequest;
using (Stream stream = webRequest.EndGetRequestStrea(ldelegate))
{
byte[] imgBytes = ImageToByte(str);
stream.Write(imgBytes, 0,imgBytes.Length);
}
webRequest.BeginGetResponse(ResponseCallBack, webRequest);
}, request);
}
private byte[] ImageToByte(Stream stream) {
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
stream.Seek(0, SeekOrigin.Begin);
return bytes;
}