SharePoint 2010开发:客户端对象模型的文件上传与下载
4星 · 超过85%的资源 需积分: 13 84 浏览量
更新于2024-09-19
收藏 127KB DOCX 举报
"本文主要介绍如何在SharePoint 2010环境中使用客户端对象模型(Client Object Model)进行文件的上传和下载操作。"
在SharePoint 2010的开发中,客户端对象模型(Client Object Model)提供了一种便捷的方式来远程访问SharePoint站点的数据,而无需在服务器端进行交互。在进行文件操作时,如上传和下载,我们首先需要引入两个关键的DLL文件:Microsoft.SharePoint.Client.dll和Microsoft.SharePoint.Client.Runtime.dll。
1. 获取ListItemCollection
获取SharePoint列表中的特定列表项(ListItem)是通过CAML查询实现的。CAML(Collaborative Application Markup Language)是一种XML语法,用于在SharePoint中表达查询条件。以下是如何使用CAML查询来获取名为"FileLeafRef"字段匹配特定文档名的ListItemCollection:
```csharp
ListItemCollection listItems = GetListItemCollectionFromSP("FileLeafRef", documentName, "Text", 1);
```
`GetListItemCollectionFromSP` 方法接收四个参数:字段名、字段值、值类型和返回的行数限制。这个方法内部创建一个 `ClientContext` 对象,连接到指定的SharePoint站点,并使用 `Lists.GetByTitle` 获取指定名称的文档库。然后,创建一个 `CamlQuery` 对象并设置其 `ViewXml` 属性为CAML查询字符串,最后通过 `List.GetItems(camlQuery)` 获取列表项集合。
2. 上传文件到SharePoint文档库
上传文件到SharePoint文档库通常涉及以下几个步骤:
- 创建一个新的 `FileCreationInformation` 对象,用于定义新文件的信息。
- 使用 `Web.GetFolderByServerRelativeUrl` 获取目标文件夹。
- 将本地文件内容转换为 `byte[]`,赋值给 `FileCreationInformation` 的 `Content` 属性。
- 使用 `Folder.Files.AddUpload` 或 `Folder.Files.Add` 方法将文件上传到SharePoint。
3. 下载文件从SharePoint文档库
下载文件的流程相对简单:
- 首先,通过列表项ID或文件URL获取 `File` 对象。
- 然后,调用 `File.OpenBinaryStream` 方法获取文件的二进制流。
- 最后,你可以将这个流写入到本地文件系统,实现文件下载。
以下是简化的代码示例:
```csharp
// 上传文件
using (FileStream fileStream = new FileStream(filePath, FileMode.Open))
{
FileCreationInformation newFile = new FileCreationInformation();
newFile.Content = fileStream.ToArray();
newFile.Url = fileName;
Microsoft.SharePoint.Client.File uploadFile = documentsList.RootFolder.Files.Add(newFile);
clientContext.Load(uploadFile);
clientContext.ExecuteQuery();
}
// 下载文件
Microsoft.SharePoint.Client.File file = clientContext.Web.GetFileByServerRelativeUrl(fileRelativeUrl);
clientContext.Load(file);
clientContext.ExecuteQuery();
using (MemoryStream stream = new MemoryStream())
{
file.CheckedOut();
file.SaveBinaryDirect(clientContext, stream);
using (FileStream downloadFileStream = File.Create(downloadFilePath))
{
stream.Seek(0, SeekOrigin.Begin);
stream.CopyTo(downloadFileStream);
}
}
```
在实际开发中,确保处理好异常,对SharePoint上下文进行适当的管理,以及在适当的时候释放资源。以上内容提供了SharePoint 2010客户端对象模型进行文件操作的基础知识,但实际应用可能需要根据具体需求进行调整和优化。
2019-08-07 上传
2012-12-14 上传
点击了解资源详情
2021-05-10 上传
2024-06-23 上传
2009-07-08 上传
2011-09-25 上传
2008-12-30 上传
2017-12-31 上传
JIM110
- 粉丝: 8
- 资源: 29
最新资源
- webbuilder_safe12k_webbuilder_
- 基于ASP SQL公交查询系统(论文 源代码).rar
- 行业分类-设备装置-一种摩天轮式藏书储物架.zip
- node-sap-common
- NeoPixelPlus:NeoPixel库以及一个测试模式-您可以看到LED如何直接在终端中运行,而无需任何额外的硬件
- Java基础17共19页.pdf.zip
- bootstrap:DMX 引导程序和存储库管理器服务
- 后台_java_zip_
- 基于SpringBoot2的垃圾识别微信小程序设计源码
- LReport-开源
- chirrin-chirrion:使用Ruby和Redis创建和管理切换的简便方法
- Excel模板4-多层对比雷达图.zip
- 行业文档-设计装置-笔记本电池及其构成的笔记本电脑.zip
- Scissor-Paste
- Java基础16共10页.pdf.zip
- 1_LabWindowsCVI_