I thought it would be an easy requirement to fetch an image from a SharePoint 2007 picture library and bind to a System.Drwaing.Image object. But when I started doing that, I had to give myself 3 to 4 hours. So here is the code snippet to fetch images from a SharePoint 2007 picture library. Namespace Required Function to return Image as MemoryStreamThis function will return an image from a SharePoint 2007 picture library using WSS Object model. This function is taking siteUrl and filename to be fetched from the picture library. This function is returning a MemoryStream.public static MemoryStream GetImageforCharts(string siteUrl, string fileName) { Byte[] fileContentsArray=null; MemoryStream imageStream = null; try { using (SPSite site = new SPSite(siteUrl)) // using (SPSite site = SPContext.Current.Site) { using (SPWeb web = site.OpenWeb()) { SPPictureLibrary chartPictureLibrary = (SPPictureLibrary)web.Lists["UrPictureLibraryName"]; SPQuery query = new SPQuery(); query.Query = @"<Where><Eq><FieldRef Name ='Title'/><Value Type='Text'>" + fileName + "</Value></Eq></Where>"; SPListItemCollection lstImages = chartPictureLibrary.GetItems(query); foreach (SPListItem r in lstImages) { SPFile file = r.File; using (Stream fileContents = file.OpenBinaryStream()) { long length = fileContents.Length ; fileContentsArray = new Byte[length]; fileContents.Read(fileContentsArray, 0,Convert.ToInt32(length)); } }
}
imageStream = new MemoryStream(fileContentsArray); return imageStream; } catch (Exception ex) { return null; }Using the FunctionNow we can call the function as below, and save the image in a System.Drawing.Image object.
You need to be a premium member to use this feature. To access it, you'll have to upgrade your membership.
Become a sharper developer and jumpstart your career.
$0
$
. 00
monthly
For Basic members:
$20
For Premium members:
$45
For Elite members: