Ich verwende unten Microsoft Graph API-Code zum Hochladen von Dateien auf OneDrive für das Geschäft des derzeit angemeldeten Benutzers. Der Code lädt Notepad .TXT-Dateien in Ordnung und ich kann die Datei richtig mit dem Inhalt öffnen, wie es ist. Wenn es jedoch ein .docx (Word-Dokument) hochlädt, löst es beim Öffnen einen Fehler aus, da die Datei beschädigt ist. Was fehlt mir hier? Referenz verwendet - https://blog.mastykarz.nl/2-practical-tips-office-365-group-files-api/ https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/item_uploadcontentMicrosoft Graph API-Datei-Upload in Onedrive für Unternehmen
Code:
byte[] filebytes= fileuploadControl.FileBytes;
using (var client = new HttpClient())
{
using (var request = new HttpRequestMessage(HttpMethod.Put, "https://graph.microsoft.com/v1.0/me/drive/root/children/" + filename + "/content"))
{
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
request.Headers.Add("Accept", "application/json;odata.metadata=verbose");
request.Content = new StringContent(DecodeFrom64(Convert.ToBase64String(filebytes)),System.Text.Encoding.ASCII, "text/plain");
using (HttpResponseMessage response = await client.SendAsync(request))
{
if (response.IsSuccessStatusCode)
{
lblFileUpload.Text = "File uploaded successfully";
}
}
}
}
static public string DecodeFrom64(string encodedData)
{
byte[] encodedDataAsBytes = System.Convert.FromBase64String(encodedData);
string returnValue = System.Text.ASCIIEncoding.ASCII.GetString(encodedDataAsBytes);
return returnValue;
}
HI Ashish, ich habe den obigen Code ausprobiert, um ein Word-Dokument hochzuladen, aber ich bekomme immer noch den Fehler, dass die Datei beschädigt ist. Könnten Sie mir bitte mitteilen, welcher Wert in der Variable filebytes vorhanden ist? Vielen Dank. – user318197