Sheeba
Sheeba

Reputation: 35

What's wrong with this code? Display Image Using WCF Rest Service

I want to display Image (.jpeg) on (Image control of Asp.Net) client side.

My rest service code is below, in which I am getting ImagePath from database.

public Stream getImage(string width, string height)
{          
    int iRecordid = 1;           
    var q = from c in db.TblNames
            where c.RecordId == iRecordid
            select new { c.ImgName, c.ImgPath };

    foreach (var obj1 in q)
    {
        sImageName = obj1.ImgName;
        sImagePath = obj1.ImgPath;
    }           
    MemoryStream ms = new MemoryStream();

    ms.Position = 0;
    return ms;
}

And I am using this service in Client side Like

 public void getImage()
 {  
     string url = @"http://localhost:50353/CustomerService.svc/getImage/100/200";

     var service = new ServiceReference(url);

     WebClient wc = new WebClient();

     byte[] res1 = wc.DownloadData(url);

     Stream res2 = new MemoryStream(res1);

     DataContractJsonSerializer res3 = new DataContractJsonSerializer(typeof(ImageMap));
     string ss = res3.ReadObject(res2).ToString();
     Image1.ImageUrl = ss;
 }

I am getting error like

There was an error deserializing the object of type System.Web.UI.WebControls.ImageMap. Encountered unexpected character 'ÿ'.

Upvotes: 0

Views: 104

Answers (1)

user4391070
user4391070

Reputation:

Try below code for rest service side

    public string getImage(string width, string height)
        {

        int iRecordid = 1;

        var q = from c in db.MasterStructures 
                where c.RecordId == iRecordid
                select new { c.ImgName, c.ImgPath };

        foreach (var obj1 in q)
        {
            sImageName = obj1.ImgName;
            sImagePath = obj1.ImgPath;
        }           
        MemoryStream ms = new MemoryStream();

        ms.Position = 0;
        WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";
        return sImagePath;

}

Upvotes: 1

Related Questions