Uploading File from Local Machine to SharePoint ListItem as an attachment

To attach the file from Local Machine to SharePoint ListItem as an attachment, Import the System.IO namespace to use the Stream Class to read the file contents.

Use System.Web.UI.WebControls.FileUpload control is named as fileUpload in code.

Sample code for uploading the file from Local Machine to ListItem attachments as follows,

//Check the FileUpload control has the file

if (fileUpload.PostedFile != null)

{item = list.Items.Add();

item["Title"] = fileUpload.FileName;

//Read the Contents from the file in Local machine

Stream fs = fileUpload.PostedFile.InputStream;                   

byte[] fileContents = new byte[fs.Length];

fs.Read(fileContents, 0, (int)fs.Length);

fs.Close();

// Add the file to the ListItem as an Attachment

SPAttachmentCollection attachments = item.Attachments;

string fileName = Path.GetFileName(fileUpload.PostedFile.FileName);

attachments.Add(fileName, fileContents); 

item.Update();                                           

}

4 thoughts on “Uploading File from Local Machine to SharePoint ListItem as an attachment

  1. Arunan

    Is it possible to check out a file from sharepoint and modify it and check in back (Like in VSS). I have a requirement to modify a excel file in sharepoint and repost it again! is it possible! if yes kindly tell me how?

    Reply
  2. Arunan

    Thanks for ur reply santhakumar!
    i want to do it thru coding! I actually knew to do it without coding!
    can u suggest a way for that

    Reply
  3. Shiva

    No need to add reference to system.io

    Single line of code
    item.Attachments.Add(fileUpload.FileName, fileUpload.FileBytes);

    Hope this helps.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>