[英]Upload to OneDrive Business using JavaScript, outside Sharepoint
[英]Unable To Put/Upload content to a file in OneDrive For Business using OneDrive for Business API
我正在嘗試使用OneDrive for Business REST API將內容添加/添加到OneDrive for Business中的文件中。 下面是代碼片段:
var getFile = getFileBuffer(file);
getFile.done(function (arrayBuffer) {
var content = arrayBuffer;
var query = "https://myonedrive/_api/v2.0/drive/{driveId}/items/{parentfolderId}/children/{fileName}/content";
$.ajax({
url: query,
method: "PUT",
data: arrayBuffer,
headers: {
"accept": "application/json;odata=verbose",
"content-length": arrayBuffer.byteLength
},
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", "Bearer " + bearerTokenvalue);
},
success: function (data) {
return
},
error: function (err) {
return;
}
})
});
function getFileBuffer(file) {
var deferred = jQuery.Deferred();
var reader = new FileReader();
reader.onloadend = function (e) {
deferred.resolve(e.target.result);
}
reader.onerror = function (e) {
deferred.reject(e.target.error);
}
reader.readAsArrayBuffer(file);
return deferred.promise();
}
我在成功呼叫中遇到錯誤,內容沒有上傳到文件中。
該錯誤是由Accept
的application/json
媒體類型的odata
參數觸發的。 我相信odata.metadata
參數是您真正想要的:
Accept: application/json;odata.metadata=verbose
原版的
錯誤消息肯定有點奇怪,但是我要猜測一下,說您的根本原因很可能與URL錯誤有關。 您提供的是driveId
但您正在訪問drive
單例而不是drives
集合。 試試看,看看是否有幫助:
https://myonedrive/_api/v2.0/drives/{driveId}/items/{parentfolderId}/children/{fileName}/content
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.