J'essaye de joindre un fichier à une liste sur notre point de partage.C# SharePoint Client List Attachment
Je peux créer l'élément de liste par programmation, mais je ne peux pas joindre la pièce jointe. Soit il me donne une erreur 401 non autorisée (qui ne peut pas être parce que j'ai un accès complet à la liste) ou le executeQuery bloque pour toujours jusqu'à l'expiration.
Voici mon code actuel: (application WPF)
ClientContext clientContext = new ClientContext("http://<SITE-URL>/sites/Team-Place/<TeamPlace-ID>/");
clientContext.RequestTimeout = int.MaxValue;
FileStream sr = new FileStream("Test.pdf", FileMode.Open);
byte[] contents = new byte[sr.Length];
sr.Read(contents, 0, (int)sr.Length);
SP.List List = clientContext.Web.Lists.GetByTitle("<List Title>");
if (List != null)
{
CamlQuery camlQuery = CamlQuery.CreateAllItemsQuery();
SP.ListItemCollection Collection = List.GetItems(camlQuery);
clientContext.Load(List);
clientContext.Load(List.Fields);
clientContext.Load(Collection);
clientContext.ExecuteQuery();
foreach (var x in List.Fields)
Debug.AppendText(x.InternalName + "\n");
ListItemCreationInformation creationInfo = new ListItemCreationInformation();
SP.ListItem Item = List.AddItem(creationInfo);
Item["Title"] = "Test";
Item["Modell"] = "Test";
Item["Seriennummer"] = "testserial";
Item["Ger_x00e4_te_x002d_Typ"] = "Laptop";
Item.Update();
clientContext.ExecuteQuery();
clientContext.Load(Item);
clientContext.ExecuteQuery();
var attInfo = new AttachmentCreationInformation();
attInfo.FileName = "Test.pdf";
attInfo.ContentStream = sr;
var att = Item.AttachmentFiles.Add(attInfo);
Item.Update();
clientContext.Load(att);
clientContext.Load(Item);
clientContext.ExecuteQuery();
//System.Diagnostics.Debug.WriteLine(att.ServerRelativeUrl);
Item.Update();
clientContext.ExecuteQuery();
/*
* Not working pice of S#@*
string attachmentPath = string.Format("/Lists/Inventur_MOBI/Attachments/{0}/{1}", Item.Id, "Test.pdf");
SP.File.SaveBinaryDirect(clientContext, attachmentPath, sr, false);
*/
}
else
Debug.AppendText("List not found");
Je ne "censurer" quelque chose dehors. La méthode SaveBinardDirect me donne un 401 non autorisé et l'attachement donne un timeout. Nous avons un Sharepoint 2013.
Quelqu'un a-t-il une idée?
Cordialement BlueFire
les important au flux mémoire semble avoir fait le tour. – BlueFire