[MSDN]使用 REST 处理文件夹和文件

msdn: http://msdn.microsoft.com/zh-cn/library/dn292553.aspx

了解如何使用 SharePoint 2013 REST 界面对文件夹和文件执行基本的创建、读取、更新和删除 (CRUD) 操作。

适用范围:   SharePoint Server 2013 | SharePoint 相关应用程序 

 

 

您可以检索已知其 URL 的文档库中的文件夹。例如,在以下示例中,您可以使用终结点检索您的“共享文档”库的根文件夹。

 
url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Shared Documents')
method: GET
headers:
    Authorization: "Bearer " + accessToken
    accept: "application/json;odata=verbose" or “application/atom+xml”

以下 XML 显示了当您请求 XML 内容类型时返回的文件夹属性的示例。

<content type="application/xml">
<m:properties>
<d:ItemCount m:type="Edm.Int32">0</d:ItemCount>
<d:Name>Shared Documents</d:Name>
<d:ServerRelativeUrl>/Shared Documents</d:ServerRelativeUrl>
<d:WelcomePage/>
</m:properties>
</content>

以下示例演示如何创建文件夹。

 
url: http://site url/_api/web/folders
method: POST
body: { '__metadata': { 'type': 'SP.Folder' }, 'ServerRelativeUrl': '/document library relative url/folder name’}
Headers: 
    Authorization: "Bearer " + accessToken
    X-RequestDigest: form digest value
    accept: "application/json;odata=verbose"
    content-type: "application/json;odata=verbose"
    content-length:length of post body

以下示例演示如何使用 MERGE 方法更新文件夹。

 
url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Folder Name')
method: POST
body: { '__metadata': { 'type': 'SP.Folder' }, 'Name': 'New name' }
Headers: 
     Authorization: "Bearer " + accessToken
    X-RequestDigest: form digest value
    “IF-MATCH”: etag or “*”
    “X-HTTP-Method”:”MERGE”,
    accept: "application/json;odata=verbose"
    content-type: "application/json;odata=verbose"
    content-length:length of post body

以下示例演示如何删除文件夹。

 
url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Folder Name')
method: POST
Headers: 
     Authorization: "Bearer " + accessToken
     X-RequestDigest: form digest value
    “IF-MATCH”: etag or “*”
    “X-HTTP-Method”:”DELETE”

 

以下示例演示如何检索文件夹中的所有文件。

 
url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Folder Name')/Files
method: GET
headers:
    Authorization: "Bearer " + accessToken
    accept: "application/json;odata=verbose" or “application/atom+xml”

以下示例演示如何检索特定文件。

 
url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Folder Name')/Files(‘file name’)/$value
method: GET
headers:
    Authorization: "Bearer " + accessToken

您还可以检索已知其 URL 的文件,如以下示例所示。

 
url: http://site url/_api/web/GetFileByServerRelativeUrl('/Folder Name/file name’)/$value
method: GET
headers:
    Authorization: "Bearer " + accessToken

以下示例演示如何创建文件并将其添加到文件夹中。

 
url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Folder Name')/Files/add(url=’a.txt’,overwrite=true)
method: POST
body: “Contents of file”
Headers: 
    Authorization: "Bearer " + accessToken
    X-RequestDigest: form digest value
    content-length:length of post body

以下示例演示如何使用 PUT 方法更新文件。

注释 注释

PUT 是可用于更新文件的唯一方法。不允许使用 MERGE 方法。

 
url: http://site url/_api/web/GetFileByServerRelativeUrl('/Folder Name/file name’)/$value
method: POST
body: “Contents of file.”
Headers: 
    Authorization: "Bearer " + accessToken
    X-RequestDigest: form digest value
    X-HTTP-Method:”PUT”
    content-length:length of post body

如果要更新文件的元数据,则需要构建到达文件的终结点作为列表项。可以执行此操作的原因在于每个文件夹也是一个列表,并且每个文件也是一个列表项。构建如下的终结点:https://<site url>/_api/web/lists/getbytitle('Documents')/items(<item id>)使用 REST 处理列表和列表项 说明如何更新列表项的元数据。

您可能希望签出文件以确保在您更新之前没有人更改它。在您更新后,您还可能希望签回文件以便他人使用它。以下示例演示如何签出文件

 
url: http://site url/_api/web/GetFileByServerRelativeUrl('/Folder Name/file name’)/CheckOut()’
method: POST
headers:
    Authorization: "Bearer " + accessToken
    X-RequestDigest: form digest value

以下示例演示如何签入文件

 
url: http://site url/_api/web/GetFileByServerRelativeUrl('/Folder Name/file name/CheckIn(comment='Comment', checkintype=0)
method: POST
headers:
    Authorization: "Bearer " + accessToken
    X-RequestDigest: form digest value

以下示例演示如何删除文件。

 
url: http://site url/_api/web/GetFileByServerRelativeUrl('/Folder Name/file name’)
method: POST
headers:
    Authorization: "Bearer " + accessToken
     X-RequestDigest: form digest value
    IF-MATCH: etag or “*”
    X-HTTP-Method:”DELETE”

 

在您需要上载大于 1.5 MB 的二进制文件时,REST 接口是您的唯一选择。有关演示如何使用 SharePoint 2013 Javascript 对象模型上载小于 1.5 MB 的二进制文件的代码示例,请参阅如何:使用 SharePoint 2013 中的 JavaScript 库代码完成基本操作。使用 REST 可创建的二进制文件的最大大小为 2 GB。下面的示例演示如何创建大二进制文件。

警告注释 警告

此方法将只适用于 Internet Explorer 10 和其他浏览器的最新版本。

 
url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Folder Name')/Files/Add(url='file name', overwrite=true)
method: POST
body: contents of binary file
headers:
    Authorization: "Bearer " + accessToken
    X-RequestDigest: form digest value
    content-type: "application/json;odata=verbose"
    content-length:length of post body

以下代码示例演示如何使用此 REST 端点和跨域库创建文件。

 
function uploadFileBinary() {
XDomainTestHelper.clearLog();
var ro;
if (document.getElementById("TxtViaUrl").value.length > 0) {
ro = new SP.RequestExecutor(document.getElementById("TxtWebUrl").value, document.getElementById("TxtViaUrl").value);
}
else {
ro = new SP.RequestExecutor(document.getElementById("TxtWebUrl").value);
}
var body = "";
for (var i = 0; i < 1000; i++) {
var ch = i % 256;
body = body + String.fromCharCode(ch);
}
var info = {
url: "_api/web/lists/getByTitle('Shared Documents')/RootFolder/Files/Add(url='a.dat', overwrite=true)",
method: "POST",
binaryStringRequestBody: true,
body: body,
success: success,
error: fail,
state: "Update"
};
ro.executeAsync(info);
}

 

以下示例演示如何检索附加到列表项的所有文件。

 
url: http://site url/_api/web/lists/getbytitle('list title')/items(item id)/AttachmentFiles/
method: GET
headers:
    Authorization: "Bearer " + accessToken
    accept: "application/json;odata=verbose" or “application/atom+xml”

以下示例演示如何检索附加到列表项的文件。

 
url: http://site url/_api/web/lists/getbytitle('list title')/items(item id)/AttachmentFiles('file name')/$value
method: GET
headers:
    Authorization: "Bearer " + accessToken
    accept: "application/json;odata=verbose" or “application/atom+xml”

以下示例演示如何创建列表项的文件附件。

 
url: http://site url/_api/web/lists/getbytitle('list title')/items(item id)/AttachmentFiles/ add(FileName='file name')
method: POST
headers:
    Authorization: "Bearer " + accessToken
    body: “Contents of file.”
    X-RequestDigest: form digest value
    content-length:length of post body

以下示例演示如何使用 PUT 方法更新列表项的文件附件。

注释 注释

PUT 是可用于更新文件的唯一方法。不允许使用 MERGE 方法。

 
url: http://site url/_api/web/lists/getbytitle('list title')/items(item id)/AttachmentFiles('file name')/$value
method: POST
body: “Contents of file.”
headers:
    Authorization: "Bearer " + accessToken
    “X-HTTP-Method”:”PUT”
    X-RequestDigest: form digest value
    content-length:length of post body

 

posted @ 2014-03-04 14:01  小笔头大做用  阅读(435)  评论(0编辑  收藏  举报