zoukankan      html  css  js  c++  java
  • [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
    
  • 相关阅读:
    JQuery onload、ready概念介绍及使用方法
    jquery获取第几个元素的方法总结
    CSS中隐藏内容的3种方法及属性值
    jQuery获取页面及个元素高度、宽度【转】
    数据仓库原理<2>:数据仓库系统的体系结构
    数据仓库原理<1>:数据库与数据仓库
    题注在论文图表编号中的使用
    初见Python<7>:Python操作mysql
    初见Python<5>:条件、循环和其他语句
    初见Python<4>:字典
  • 原文地址:https://www.cnblogs.com/52life/p/3580266.html
Copyright © 2011-2022 走看看