J'ai une liste avec un formulaire personnalisé qui contient un contrôle de téléchargement de fichier personnalisé. Dès que l'utilisateur sélectionne un fichier et clique sur le téléchargement, je veux que ce fichier accède directement à la liste des pièces jointes dans ce listitem. Toutefois, lors de l'ajout du fichier à SPContext.Current.ListItem.Attachments sur un nouvel élément, la pièce jointe n'apparaîtra pas dans la liste après l'enregistrement. Si j'utilise à la place item.Update() sur le nouvel élément après l'ajout de la pièce jointe, j'obtiens une erreur dans Sharepoint, mais quand je reviens à la liste, l'élément est là avec sa pièce jointe. Il semble qu'il essaie de créer 2 nouvelles entrées à la fois quand je sauvegarde (item.Update) ce qui entraîne la deuxième de ces accidents.Sharepoint NewForm Ajout de pièces jointes par programme
Quelle serait la bonne façon d'ajouter des pièces jointes de cette façon?
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();