我有一个大尺寸字节 [] 使用以下代码从 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());
有人可以建议一些样本或任何其他解决方案来解决我的问题。