私はWCF Restサービスを書いています。彼は絵を受け取って保存するのに使うでしょう。 私は窓の電話7のクライアントとの写真を撮って、送る。 (サービス側の)ストリーム上で解析する画像を送信できますが、「badparameter」のために画像は保存されません。wcf rest serviceで画像を送ることができない
コード画像を撮影するために使用します。
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);
};
}
コードは(残りシャープで)画像を送信するために使用します。
serveur側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);
どこが間違っていますか?
多分あなたはファイルパスと同様にimg.save部分に別の '\\'を追加する必要がありますか? –
thxそれは問題の一部でした。しかし、画像を開こうとするとエラーが出ます。イメージが良いフォーマットでない場合のように。 – David