#c# #sharepoint #file-upload #office365
#c# #sharepoint #загрузка файла #office365
Вопрос:
Я пытался загрузить файл в OneDrive для бизнеса / SharePoint, используя следующие библиотеки DLL:
Майкрософт.Офис.Oauth
Microsoft.Office365.SharePoint;
Microsoft.Office365.SharePoint.Расширения;
С помощью следующего кода:
public async void UploadDataAsync(byte[] bytes, string fileName)
{
// NAME: TestFolder, ID: TestFolder, URL: /personal/[company]_onmicrosoft_com/Documents/TestFolder, SIZE: 0
UserInformation userInformation = new UserInformation();
userInformation.Id = "Castrovalva";
userInformation.Name = "Castrovalva";
Microsoft.Office365.SharePoint.File file = new Microsoft.Office365.SharePoint.File();
file.CreatedBy = userInformation;
file.LastModifiedBy = userInformation;
file.Id = fileName;
file.Name = fileName;
file.Url = "/personal/[company]_onmicrosoft_com/Documents/TestFolder";
file.TimeCreated = DateTime.Now;
file.TimeLastModified = DateTime.Now;
file.ETag = "ETAG";
using (MemoryStream memory = new MemoryStream(bytes))
{
await file.UploadAsync(memory);
}
}
Я получаю эту ошибку при попытке запустить этот код:
Система.Исключение: {«не удается найти объект»}
Источник: Microsoft.Office365.SharePoint
Чего я не понимаю, так это того, что мне не нужен объект SharePointClient (клиент, подключенный к sharepoint) для выполнения кода.
Потому что, когда я хочу получить информацию обо всех моих файлах или должен подключиться, я использую этот объект.
_client = await EnsureClientCreated();
_client.Context.IgnoreMissingProperties = true;
Итак, как мне загрузить файл в OneDrive для бизнеса / SharePoint?
Ответ №1:
Я нашел решение, оно оказалось более простым, чем я ожидал:
using (Stream stream = new MemoryStream(bytes))
{
try
{
//await _client.Context.ExecuteAsync(uri, "POST", stream);
await _client.Files.AddAsync(fileName, true, stream);
}
catch (InvalidOperationException exception)
{ MessageBox.Show(exception.Message); }
}