如何在SharePoint 2013中使用REST API将附件文件附加到列表项
本文关键字:文件 列表 API REST SharePoint 2013 | 更新日期: 2023-09-27 18:08:54
我想问问专家。
有没有人知道如何在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
}
})
有几种使用。net使用SharePoint REST API的方法,其中一些如下:
- HttpClient -提供了一个基类,用于发送HTTP请求和接收由URI标识的资源的HTTP响应。(
.NET Framework 4.5
) - WebClient -提供通用的方法来发送数据和从一个URI标识的资源接收数据。(
.NET Framework 1.1
) - HttpWebRequest -提供了一个特定于http的WebRequest类的实现,比之前的更低级
它们都允许在SharePoint Online/SharePoint 2013中使用REST接口执行CRUD操作。
SPWebClient类演示如何使用WebClient执行CRUD操作。如何通过SharePoint REST API添加附件文件
下面的示例演示了如何在SharePoint Online中将附件文件添加到列表中:
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);
}
}
依赖性:
- 使用SPWebClient类来表示WebClient的包装器
- Json。. NET库依赖项
试着用这个:
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.');
}
}
);