首页 文章

如何使用SharePoint 2013中的REST API将附件文件附加到列表项

提问于
浏览
3

我想问专家 .

任何人都知道如何使用SharePoint 2013中的REST API将附件文件附加到列表项?我搜索了波纹管文件 . 但是没有关于将文件上传为列表项附件的信息 .

http://msdn.microsoft.com/en-us/library/fp142386.aspx

附加信息:

我找到了吼叫文章 .

http://chuvash.eu/2013/02/20/rest-api-add-a-plain-text-file-as-an-attachment-to-a-list-item/

根据该文章,它可以使用下面的Javascript代码将附件文件上传到列表项 . 我想用C# . 我现在正在尝试,但我仍然没有成功 .

var content = "Hello, this text is inside the file created with REST API";
var digest = $("#__REQUESTDIGEST").val();
var composedUrl = "/_api/web/lists/GetByTitle('List1')/items(1)/AttachmentFiles/add(FileName='readme.txt')";
$.ajax({
    url: composedUrl,
    type: "POST",
    data: content,
    headers: {        
        "X-RequestDigest": digest
    }
})

2 回答

  • 0

    如何使用.NET来使用SharePoint REST API有几种方法,其中一些列在下面:

    • HttpClient - 提供一个基类,用于发送HTTP请求并从URI标识的资源接收HTTP响应 . ( .NET Framework 4.5

    • WebClient - 提供向URI标识的资源发送数据和从其接收数据的常用方法 . ( .NET Framework 1.1

    • HttpWebRequest - 提供WebRequest类的特定于HTTP的实现,比之前的更低级别

    所有这些都允许使用REST接口在SharePoint Online / SharePoint 2013中执行CRUD操作 .

    SPWebClient class演示了如何使用WebClient执行CRUD操作 .

    如何通过SharePoint REST API添加附件文件

    以下示例演示如何将附件文件添加到SharePoint Online中的List:

    var credentials = new SharePointOnlineCredentials(userName, securePassword);
    AddAttachmentFile(webUrl, credentials, "Nokia Offices", 1, @"c:\upload\Nokia Head Office in Espoo.jpg");
    
    
    public static void AddAttachmentFile(string webUrl,ICredentials credentials,string listTitle,int itemId,string filePath)
    {
            using (var client = new SPWebClient(new Uri(webUrl),credentials))
            {
                var fileContent = System.IO.File.ReadAllBytes(filePath);
                var fileName = System.IO.Path.GetFileName(filePath);
                var endpointUrl = string.Format("{0}/_api/web/lists/GetByTitle('{1}')/items({2})/AttachmentFiles/add(FileName='{3}')", webUrl,listTitle,itemId,fileName);
                client.UploadFile(new Uri(endpointUrl), fileContent);
            }
    }
    

    依赖关系:

  • 2

    试着用这个:

    var executor = new SP.RequestExecutor(appweburl);
    var digest = $("#__REQUESTDIGEST").val();
    var content = "Hello, this text is inside the file created with REST API";
    
    executor.executeAsync(
    {
    url: appweburl +           "/_api/web/lists/getbytitle('List1')/items(1)/AttachmentFiles/add(FileName='readme.txt)",
    method: "POST",
    body: content,
    headers: {
              "X-RequestDigest": digest
             },
    success: function(data) {
             toastr.success('Document attached successfully.');
             },
    error: function(err) {
             toastr.error('Oops! Document attached created fail.');
             }
    }
    );
    

相关问题