This documentation is archived and is not being maintained.

Lists.AddAttachment Method

Windows SharePoint Services 3
Adds an attachment to the specified list item in the specified list.

Web Service: ListsWeb Reference: http://<Site>/_vti_bin/Lists.asmx

[SoapDocumentMethodAttribute("", RequestNamespace="", ResponseNamespace="", Use=SoapBindingUse.Literal, ParameterStyle=SoapParameterStyle.Wrapped)] 
public string AddAttachment (
	string listName,
	string listItemID,
	string fileName,
	byte[] attachment



A string that contains either the title or the GUID for the list.


A string that contains the ID of the item to which attachments are added. This value does not correspond to the index of the item within the collection of list items.


A string that contains the name of the file to add as an attachment.


A byte array that contains the file to attach by using base-64 encoding.

Return Value

A string that contains the URL for the attachment, which can subsequently be used to reference the attachment.

The following code example adds a local file as an attachment to a specified list item. The example uses a System.IO.FileStream object to read the source file into a byte array that is passed as a parameter of the AddAttachment method.

This example requires that a using (Visual C#) or Imports (Visual Basic) directive be included for the System.IO namespace. The example also assumes the existence of a text box in the form of the Windows application.

string srcUrl = textBox1.Text;

if (! File.Exists(srcUrl))
    throw new ArgumentException(String.Format("{0} does not exist", 
        srcUrl), "srcUrl");

FileStream fStream = File.OpenRead(srcUrl);
string fileName = fStream.Name.Substring(3);
byte[] contents = new byte[fStream.Length];
fStream.Read(contents, 0, (int)fStream.Length);

Web_Reference_Folder.Lists listService = 
    new Web_Reference_Folder.Lists();
listService.Credentials= System.Net.CredentialCache.DefaultCredentials;

    string addAttach = listService.AddAttachment("List_Name", "3", 
        fileName, contents);

catch (System.Web.Services.Protocols.SoapException ex)
    MessageBox.Show("Message:\n" + ex.Message + "\nDetail:\n" + 
        ex.Detail.InnerText + "\nStackTrace:\n" + ex.StackTrace);