The sample code for extracting attachment from submitted InfoPath form
var lstTimeSheet = new List<RelatedTimesheet>();
foreach (var timeSheet in invoiceFormData.Summary.Timesheet)
{
if (timeSheet.Attachment != null)
{
var tSheet = new RelatedTimesheet();
var b = timeSheet.Attachment;
var nameBufferLen = b[20] * 2;
var fileNameBufffer = new byte[nameBufferLen];
for (var i = 0; i < nameBufferLen; i++)
{
fileNameBufffer[i] = b[24 + i];
}
var charFileName = Encoding.Unicode.GetChars(fileNameBufffer);
var fileName = new string(charFileName);
tSheet.FileName = fileName.Substring(0, fileName.Length - 1);
var fileContent = new byte[b.Length - (24 + nameBufferLen)];
for (var i = 0; i < fileContent.Length; i++)
{
fileContent[i] = b[24 + nameBufferLen + i];
}
tSheet.Attachment = fileContent;
lstTimeSheet.Add(tSheet);
}
}
public class RelatedTimesheet
{
public string FileName { get; set; }
public byte[] Attachment { get; set; }
}








