我有一个大尺寸的byte []由silverlight Canvas使用以下代码
组成var img = new WriteableBitmap(cnvControlHolder, null);
var outStream = new MemoryStream();
EncodeJpeg(img, outStream);
现在我想将它发送到WCF服务,以便从这个字节数组&将其保存为服务器端的映像,以便我可以在SSRS中使用它。我的问题是因为byte []很大我得到了从WCF服务找不到的经典方法。
我在几个链接中读到WCF流是一种选择,但在网上找不到任何样本。我的服务方法是这样的:
public bool Upload(Stream image)
{
FileStream fileStream = null;
BinaryWriter writer = null;
var filePath = HttpContext.Current.Server.MapPath(".") + @"\" +
ConfigurationManager.AppSettings["PictureUploadDirectory"] + @"\Diagram.jpeg";// +image.ImageName;
if (image!=null)
{
//return ByteArrayToFile(filePath, image.Imagestream);
fileStream = File.Open(filePath, FileMode.Create);
writer = new BinaryWriter(fileStream);
writer.Write("Diagram.jpeg");
}
return false;
}
and client call is this :
var img = new WriteableBitmap(canvas1, null);
var outStream = new MemoryStream();
EncodeJpeg(img, outStream); //custom library to compress into jpeg
var client = new Service1Client();
client.UploadCompleted += new EventHandler<UploadCompletedEventArgs>(client_UploadCompleted);
client.UploadAsync(outStream.ToArray());
有人可以建议一些示例或任何其他解决方案来解决我的问题。
答案 0 :(得分:0)
我最近在Silverlight中实现了一个非常类似的解决方案。解决方案包括:
我希望这可以帮助您入门。