Загрузить файл из SharePoint, используя секретный ключ клиента - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь загрузить файл из SharePoint (и в более позднем способе также загрузить файл в SharePoint), используя идентификатор клиента и секретный ключ в приложении C# WinForms. Изо всех сил пытается найти информацию о том, как на самом деле загрузить файл или загрузить файл из или в указанную c папку или путь на SharePoint. Если возможно, я также хотел бы иметь индикатор выполнения, чтобы показать прогресс загрузки.

В настоящее время я использую asyn c веб-клиент, загружаемый в другое место приложения с других веб-сайтов, но наш сервер SharePoint требует использования секретного ключа и идентификатора клиента для подключения.

string siteUrl = "https://company.sharepoint.com/sites/MediaHost";
string clientId = "clientIDhere";
string clientSecret = "secretIDhere";
using (var clientContext = new OfficeDevPnP.Core.AuthenticationManager().GetAppOnlyAuthenticatedContext(siteUrl, clientId, clientSecret))
     {
           
     }

1 Ответ

0 голосов
/ 15 апреля 2020

Поскольку вы сгенерировали clientContext, вы можете ссылаться на приведенный ниже код для загрузки файла в SP

private static void UploadFile()
    {
        List targetList = ctx.Web.Lists.GetByTitle("Documents");
        FileCreationInformation fci = new FileCreationInformation();
        fci.Content = System.IO.File.ReadAllBytes(@"C:\Users\mengfeik\Downloads\Dynamics.pdf");
        fci.Url = "Dynamics";
        fci.Overwrite = true;
        File fileToUpload = targetList.RootFolder.Files.Add(fci);
        ctx.Load(fileToUpload);
        ctx.ExecuteQuery();

        Console.WriteLine("upload successfully");

    }

Если вы хотите загрузить файлы в папку, пожалуйста, обратитесь к

ClientContext ctx = новый ClientContext (siteUrl); ctx.Credentials = new SharePointOnlineCredentials (имя пользователя, пароль);

FileCollection files = ctx.Web.GetFolderByServerRelativeUrl(folderPath).Files;

ctx.Load(files);
ctx.ExecuteQuery();

foreach(File file in files)
{
    FileInformation fileInfo = File.OpenBinaryDirect(ctx, file.ServerRelativeUrl);
    ctx.ExecuteQuery();

    var filePath = tempLocation + file.Name;
    using (var fileStream = new System.IO.FileStream(filePath, System.IO.FileMode.Create))
    {
        fileInfo.Stream.CopyTo(fileStream);
    }
}

дополнительная ссылка do c: https://exceptionshub.com/how-to-downloadupload-files-fromto-sharepoint-2013-using-csom.html

...