У меня есть список с пользовательской формой, которая содержит пользовательский элемент управления загрузкой файлов.
Как только пользователь выберет файл и нажмет кнопку «загрузить», я хочу, чтобы этот файл сразу попадал в список вложений в этом элементе списка.
Однако при добавлении файла в SPContext.Current.ListItem.Attachments для нового элемента вложение не будет отображаться в списке после сохранения.
Если я вместо этого использую item.Update () для нового элемента после добавления вложения, я получаю сообщение об ошибке в Sharepoint, но когда я затем возвращаюсь к списку, элемент там с его вложением.
Похоже, что он пытается создать 2 новые записи одновременно, когда я сохраняю (item.Update), что приводит к второму из этих сбоя.
Как правильно добавить вложения таким образом?
oSPWeb.AllowUnsafeUpdates = true;
// Get the List item
SPListItem listItem = SPContext.Current.ListItem;
// Get the Attachment collection
SPAttachmentCollection attachmentCollection = listItem.Attachments;
Stream attachmentStream;
Byte[] attachmentContent;
// Get the file from the file upload control
if (fileUpload.HasFile)
{
attachmentStream = fileUpload.PostedFile.InputStream;
attachmentContent = new Byte[attachmentStream.Length];
attachmentStream.Read(attachmentContent, 0, (int)attachmentStream.Length);
attachmentStream.Close();
attachmentStream.Dispose();
// Add the file to the attachment collection
attachmentCollection.Add(fileUpload.FileName, attachmentContent);
}
// Update th list item
listItem.Update();