Wcf 通过HTTP传输对象数据,包括图像

Wcf 通过HTTP传输对象数据,包括图像,wcf,windows-phone-8,Wcf,Windows Phone 8,我有以下场景:用户正在使用移动应用程序,可以创建存储以下数据的对象: 名称,它是一个字符串 地址,它是一个字符串 图片,使用手机摄像头拍摄,并作为位图图像本地存储 用户可以选择将这些数据存储在服务器后端,这是一个侦听HTTP请求的WCF web服务。我知道我可以将对象字符串编码为JSON对象,并通过无线方式发送到http服务,但我不确定如何将图像传输到服务器?您能将其编码为XML/JSON并将其与字符串一起发送吗 该应用程序目前是一个用C#编写的windows phone 8应用程序,但同样的应

我有以下场景:用户正在使用移动应用程序,可以创建存储以下数据的对象:

名称,它是一个字符串 地址,它是一个字符串 图片,使用手机摄像头拍摄,并作为位图图像本地存储

用户可以选择将这些数据存储在服务器后端,这是一个侦听HTTP请求的WCF web服务。我知道我可以将对象字符串编码为JSON对象,并通过无线方式发送到http服务,但我不确定如何将图像传输到服务器?您能将其编码为XML/JSON并将其与字符串一起发送吗


该应用程序目前是一个用C#编写的windows phone 8应用程序,但同样的应用程序将在不久的将来为iOS设备编写

您必须为每个图像添加流转换,并将详细信息添加到列表中

在客户端

Stream stream = (Stream)openDialog.File.OpenRead();
                    byte[] bytes = new byte[stream.Length];
                    stream.Read(bytes, 0, (int)stream.Length);
                    BitmapImage bmi = new BitmapImage();
                    using (MemoryStream ms = new MemoryStream(bytes))
                    {
                        bmi.SetSource(ms);
                        newRow.Thumbnail = bmi;
                }
在你的服务端

string filePath = ConfigurationManager.AppSettings.Get("ImageUploadPath");

                          if (!Directory.Exists(filePath))
                          {
                              Directory.CreateDirectory(filePath);
                          }

                          filePath = filePath + "\\" + picture.FileName + "." + picture.FileType;

                          if (picture.FileName != string.Empty)
                          {
                              fileStream = File.Open(filePath, FileMode.Create);
                              writer = new BinaryWriter(fileStream);
                              writer.Write(picture.FileStream);
                          }

您可以通过“multilpart/formdata”使用HTTP请求,以便将图像作为文件上载。或者,您可以将图像编码到Base64并将其作为字符串上载创建一个包含名称(字符串)和图片(字节数组)两个属性的POCO对象。现在,您可以使用图片和名称填充POCO,然后将其发送到服务器。上面的简单C代码应该很简单