如何通过#MicrosoftGraph上传Excel文件的内容

我目前使用xlsx NodeJS库在我的文件系统上生成一个文件,我也使用create item结束点在OneDrive上创build了空文件( https://graph.microsoft.io/en-us/docs/api-reference/beta / api / item_post_children )

现在,我想要将OneDrive上文件的内容与文件系统上的文件内容一起上传。 我正在尝试使用Upload Item结束点( https://graph.microsoft.io/en-us/docs/api-reference/beta/api/item_uploadcontent )并请求传递正常,但是当我尝试使用Excel Online打开文件我收到文件已损坏的消息

无论如何,如果我通过OneDrive Web界面上传文件,一切正常

任何想法为什么内容上传不起作用?

该文件的内容应该是正在上传的文件的二进制stream。 我创build了一个示例Web应用程序供人们使用称为Visual Graph Explorer的Graph API来玩。 一旦您login到O365凭证的Web应用程序,您可以点击文件链接并上传文件。 在右侧,您将看到请求和响应的日志。 如果你想看到完整的源代码,可以在GitHub上查看。

我用来上传的代码是在JavaScript中,并在客户端运行。

 var f = document.getElementById("inputFile").files[0]; var r = new FileReader(); r.onloadend = function (e) { var data = e.target.result; var url = "https://graph.microsoft.com/v1.0/users/" + $scope.upn + "/drive/root/children/" + f.name + "/content"; $http.put(url, data) .then(function successCallback(response) { document.getElementById("inputFile").value = ""; }, function errorCallback(response) { $scope.error = JSON.stringify(response); $scope.loadingMessage = ""; }) } r.readAsBinaryString(f); 

另一种方法可能是上传一个空的Excel文件并使用Excel REST API更新数据。