我正在关注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);
});
}
答案 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);