WCFRestサービスを作成しています。彼は写真を受け取って保存するために使用されます。WindowsPhone7クライアントで写真を撮って送信します。ストリーム(サービス側)で解析された画像を送信できますが、「不良パラメータ」のために画像が保存されません。
写真を撮るためのコード使用:
private void TakePictureAction()
{
//Show the camera
_camera.Show();
//Append when camera task finished.
_camera.Completed += delegate(object sender, PhotoResult e)
{
_photoImage = new BitmapImage();
_photoImage.SetSource(e.ChosenPhoto);
};
}
画像を送信するためのコードの使用(残りはシャープ):
var client = new RestClient("http://127.0.0.1:81/Service.svc");
var request = new RestRequest("/uploadImage", Method.POST);
request.AddBody(_photoImage);
try
{
client.ExecuteAsync(request, response =>
{
//Do stuff
});
}
catch (Exception ex)
{
MessageBox.Show("error");
}
そして、サーバー側のコード:
public void UploadImage(Stream fileStream)
{
if (fileStream != null)
{
string filePath = @"c:\";
using (FileStream fileToUpload = new FileStream(filePath + "ok.bmp", FileMode.Create))
{
byte[] byteArray = new byte[10000];
int bytesRead = 0;
do
{
bytesRead = fileStream.Read(byteArray, 0, byteArray.Length);
if (bytesRead > 0)
{
fileToUpload.Write(byteArray, 0, bytesRead);
}
} while (bytesRead > 0);
using (MemoryStream ms = new MemoryStream(byteArray))
{
Bitmap img = (Bitmap)Image.FromStream(ms);
img.Save(@"c:\img.bmp");
}
}
}
}
マイサービス方式
[OperationContract]
[WebInvoke(UriTemplate = "/uploadImage", Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]
void UploadImage(Stream img);
私はどこが間違っていますか?