Reputation: 81262
I have the following code:
SPList list = web.Lists[this.ListName];
SPListItem item = list.Items.Add();
now what I want to do is:
FileInfo[] attachments = attachmentDirectory.GetFiles();
foreach (FileInfo attachment in attachments)
{
// Add the attachment from file system to the list item...
}
How do I convert a normal file to a byte array?
Upvotes: 6
Views: 37766
Reputation: 81262
foreach (FileInfo attachment in attachments)
{
FileStream fs = new FileStream(attachment.FullName , FileMode.Open,FileAccess.Read);
// Create a byte array of file stream length
byte[] ImageData = new byte[fs.Length];
//Read block of bytes from stream into the byte array
fs.Read(ImageData,0,System.Convert.ToInt32(fs.Length));
//Close the File Stream
fs.Close();
item.Attachments.Add(attachment.Name, ImageData);
}
Upvotes: 12
Reputation: 1865
Maybe this will point you in a helpful direction:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spattachmentcollection.aspx
also this might help
http://msdn.microsoft.com/en-us/library/lists.lists.addattachment.aspx
Upvotes: 4