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

时间:2013-06-16 14:27:26

标签: wcf windows-phone-8

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

名称,这是一个字符串 地址,这是一个字符串 图片,使用手机的相机拍摄并作为位图图像存储在本地。

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

该应用程序目前是用C#编写的Windows Phone 8应用程序,但在不久的将来将为iOS设备编写相同的应用程序。

1 个答案:

答案 0 :(得分:0)

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

在客户端。

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);
                          }