如何使用MS Graph API上传任何文件?

时间:2016-05-04 15:45:14

标签: javascript onedrive microsoft-graph

我正在关注this,我想将任何类型的文件上传到OneDrive。它说它接受文件内容的缓冲区,但我的以下代码似乎不适用于任何类型的文件。文件上传但无法打开,因此内容确实搞砸了。

使用以下方法我试图获取正文内容,以便我可以发送请求。

private fileToBuffer(file: File): Observable<any> {
    return Observable.create(observer => {
        var arrayBuffer;
        var fileReader = new FileReader();
        fileReader.onload = function () {
            arrayBuffer = this.result;
            observer.next(arrayBuffer);
            observer.complete();
        };
        fileReader.readAsArrayBuffer(file);
    });
}

1 个答案:

答案 0 :(得分:2)

我没有注意到Angular 2的http的PUT正在将身体作为字符串。因此,我使用XHR上传包含其内容的文件。

var oReq = new XMLHttpRequest();
oReq.open("PUT", url, true);
oReq.setRequestHeader("Content-Type", "text/plain");
oReq.onload = function(e){
    console.log('done');
};
oReq.send(arrayBuffer);