[英]Why can't get files from Sharepoint 2013 Library Folder using REST API
[英]Sharepoint 2013 Add large files with rest api
我正在開發一個項目,通過 jquery 和其余 api 將文件從一個文檔庫復制到 Sharepoint 2013 中的另一個文檔庫。 我的解決方案基於此http://techmikael.blogspot.com/2013/07/how-to-copy-files-between-sites-using.html
以下代碼適用於較小的文件大小(64mb 或更小)。 但是,在嘗試復制較大的文件(128Mb 及以上)時出現錯誤。 addFileBinary 函數以“沒有足夠的存儲空間來完成此操作”返回錯誤回調。 有解決方法嗎? 我正在使用 IE11。
$(document).ready(function ()
{
//Get binary data of file to copy
getFileBinary(fromUrl, FileServerRelativeUrl, function (binary)
{
//Copy binary file data to new library
addFileBinary(toUrl, newLibraryName, FileName, binary, function (newFile)
{
alert("File Added");
},null);
},null);
}
function getFileBinary(url, filePath, complete, failure)
{
var executor = new SP.RequestExecutor(url);
var info = {
url: "_api/web/getfilebyserverrelativeurl('" + filePath + "')/$value",
method: "GET",
binaryStringResponseBody: true,
success: function (data) {
//binary data available in data.body
complete(data.body);
},
error: function (err) {
failure(err);
}
};
executor.executeAsync(info);
}
function addFileBinary(url, libraryName, fileName, arrayBuffer, complete, failure) {
var executor = new SP.RequestExecutor(url);
var info = {
url: "_api/web/GetFolderByServerRelativeUrl('" + libraryName + "')/Files/Add(url='" + fileName + "', overwrite=true)?$expand=ListItemAllFields,ListItemAllFields/ParentList",
headers: {
"Accept": "application/json; odata=verbose",
"content-length": arrayBuffer.length,
},
method: "POST",
contentType: "application/json;odata=verbose",
binaryStringRequestBody: true,
body: arrayBuffer,
state: 'Update',
success: function (data) {
var jsonObj = $.parseJSON(data.body);
complete(jsonObj.d);
},
error: function (err) {
failure(err);
}
};
executor.executeAsync(info);
}
我已執行以下操作以嘗試糾正此問題(均無效)。
我建議使用 Sharepoint APIs。 試試這些:
https://sharepoint.stackexchange.com/questions/104860/sharepoint-online-rest-api-image-upload-ajax
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.