In this blog post we can see how to programmatically upload and retrieve images in SharePoint Picture Library. The uploaded file is read as stream and inserted into a picture library along with the additional attributes of the file.
Follow the below Steps to perform the upload and download functionality
Step 1
Create one picture library and named it “MySamplePictureLib“ in a SharePoint 2013
Step 2
Open the visual studio and create a new SharePoint Project and add a Visual web Part and name it as “PictureSamples “
Step 3
Click the VisualWebPart1 paste the below code inside the VisualWebPart1UserControl.ascx
<table style="width: 424px">
<tr>
<td>
<asp:FileUpload ID="FileUpload1" runat="server" />
</td>
</tr>
<tr>
<td>
<asp:Button ID="Btnupload" runat="server" Text="Upload" OnClick="Btnupload_Click"
Width="90px" />
</td>
</tr>
<asp:GridView ID="GrdImage" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Image">
<ItemTemplate>
<img id="img" src='<%# Eval("URL") %>' alt="" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Imageurl">
<ItemTemplate>
<asp:Label ID="Lblurl" runat="server" Text='<%# Eval("URL") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</table>
Step 4
Click VisualWebPart1UserControl.ascx.cs paste the below inside the partial Class
public class ImageCollection
{
public ImageCollection(string ImageUrl, string ImageName)
{
_URL = ImageUrl;
_Name = ImageName;
}
private string _Name;
private string _URL;
public string Name
{
get { return _Name; }
set { _Name = value; }
}
public string URL
{
get { return _URL; }
set { _URL = value; }
}
}
protected void Page_Load(object sender, EventArgs e)
{
GridDatabind();
}
public void GridDatabind()
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new Microsoft.SharePoint.SPSite(SPContext.Current.Site.Url))
{
using (SPWeb web = site.OpenWeb())
{
SPList LstPicture = web.Lists["MySamplePictureLib"];
List<ImageCollection> lsts = new List<ImageCollection>();
foreach (SPListItem item in LstPicture.Items)
{
string ImageUrl = Convert.ToString(item["Thumbnail URL"]);
string ImageName = Convert.ToString(item["Name"]);
lsts.Add(new ImageCollection(ImageUrl, ImageName));
}
GrdImage.DataSource = lsts;
GrdImage.DataBind();
}
}
});
}
protected void Btnupload_Click(object sender, EventArgs e)
{
using (SPSite site = new Microsoft.SharePoint.SPSite(SPContext.Current.Site.Url))
{
using (SPWeb web = site.OpenWeb())
{
web.AllowUnsafeUpdates = true;
Stream StreamImage = null;
if (FileUpload1.HasFile)
{
StreamImage = FileUpload1.PostedFile.InputStream;
}
SPList pics = web.Lists["MySamplePictureLib"];
pics.RootFolder.Files.Add(FileUpload1.FileName, StreamImage);
GridDatabind();
}
}
}
Step 5
Deploy and run your project you will see the output like this
Leave a comment