Как загрузить существующий файл в формате text / doc с помощью API-интерфейса объекта driveitem в asp.net MVC - PullRequest
0 голосов
/ 22 июня 2019

Я создаю веб-приложение и хочу загрузить существующий файл со своего диска в папку onedrive, которую я создал программным способом.Я следовал примеру загрузки по ссылке , но мне не удалось создать файл и загрузить в него существующее содержимое файла, хотя я могу создать папку с помощью объекта driveitem.

        DriveItem file = new DriveItem()
        {
            File = new Microsoft.Graph.File(),
            Name = "abc.txt",                              
        };
        var freq = graphClient
                .Me
                .Drive
                .Items[parentFolder.Id]                    
                .Request();
              byte[] data = 
        System.IO.File.ReadAllBytes(@"C:\Users\Desktop\testfile.txt");
        DriveItem uploadedFile = null; MemoryStream stream = null;
        using (stream = new MemoryStream(data))
        {
            file.Content = stream;
            stream.Position = 0;                
        }
        var req = graphClient
               .Me                 
              .Drive.Items[parentFolder.Id]            
               .Content
               .Request();
        try
        {
            uploadedFile = await req.PutAsync<DriveItem>(stream);
        }
        catch (Exception ex)
        {

        }

Но этот код не создает файл и не обновляет содержимое файла, который я создаю с помощью объекта driveitem.

1 Ответ

0 голосов
/ 22 июня 2019

Следующая конечная точка демонстрирует, как заменить существующий файл:

PUT /me/drive/items/{item-id}:/{path-to-file}/content  

, где item-id относится к DriveItem с фасетом папки

C # пример

var path = @"C:\Sample.docx";

var bytes = System.IO.File.ReadAllBytes(path);
var stream = new MemoryStream(bytes);

var driveItem = await graphClient.Me
      .Drive
      .Items[folderItemId]
      .ItemWithPath(System.IO.Path.GetFileName(path))
      .Content
      .Request()
      .PutAsync<DriveItem>(stream);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...