Ошибка 400 неверного запроса при попытке загрузки в библиотеку sharepoint online с использованием CSOM и c#

#sharepoint-online #csom

#sharepoint-online #csom

Вопрос:

Я пытаюсь загрузить файл, который находится на моем рабочем столе, в библиотеку документов в семействе сайтов sharepoint online, используя c # и CSOM. ниже приведен мой фрагмент кода.. Может кто-нибудь сообщить мне, чего мне здесь не хватает?

 using (SP.ClientContext CContext = new SP.ClientContext(SiteUrl))
                {
                    CContext.Credentials = onlineCredentials;
                    SP.Web web = CContext.Web;
                    SP.FileCreationInformation newFile = new SP.FileCreationInformation();
                    byte[] FileContent = System.IO.File.ReadAllBytes(filePath);
                    //newFile.ContentStream = new MemoryStream(FileContent);
                    //newFile.ContentStream = new MemoryStream(FileContent);
                    newFile.Content = FileContent;
                    newFile.Url = "/sites/scr/Reports/"   Path.GetFileName(filePath);
                    newFile.Overwrite = true;

                    SP.List DocumentLibrary = web.Lists.GetByTitle(DocLibrary);                    
                    SP.File uploadFile = DocumentLibrary.RootFolder.Files.Add(newFile);

                    CContext.Load(DocumentLibrary);
                    CContext.Load(uploadFile);
                    CContext.ExecuteQuery();                                       
                }
  

Комментарии:

1. Есть ли какие-либо обновления? Сработал ли код?

Ответ №1:

Попробуйте изменить следующим образом:

             using (ClientContext CContext = new ClientContext("https://tenant.sharepoint.com/sites/dev/"))
            {
                CContext.Credentials = new SharePointOnlineCredentials(account,secret);
                Web web = CContext.Web;
                FileCreationInformation newFile = new FileCreationInformation();
                newFile.ContentStream = new MemoryStream(System.IO.File.ReadAllBytes(filePath));
                newFile.Url = "/sites/dev/Shared Documents/"   Path.GetFileName(filePath);
                newFile.Overwrite = true;

                List DocumentLibrary = web.Lists.GetByTitle("Documents");
                Microsoft.SharePoint.Client.File uploadFile = DocumentLibrary.RootFolder.Files.Add(newFile);

                CContext.Load(DocumentLibrary);
                CContext.Load(uploadFile);
                CContext.ExecuteQuery();
            }