Sharepoint 2010 API使用元数据上载文件,从ASP.NET Web应用程序创建新版本

时间:2013-11-22 11:09:47

标签: asp.net web-services api sharepoint document

如何上传包含元数据的文件,从ASP.NET Web应用程序创建新版本到SharePoint 2010?

有什么办法吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

有多种方法可以将文件上传到文档库。

也许最简单的方法就是使用File.Copy将文件复制到文档库的URL。 SharePoint支持WebDAV,因此您可以将库视为网络文件夹,直接从任何应用程序打开/保存文件,从Windows资源管理器中复制和重命名等。

你确实面临一些限制:

  • 文件的完整路径不能超过260个字符,SharePoint会在不发出警告的情况下截断它。
  • 文件名不能包含对Windows资源管理器有效的某些字符,例如#
  • 如果您尝试保存与现有文件同名的文件,SharePoint将创建一个名称略有不同的新文件而不询问
  • 您无法控制authorcreation date属性。 SharePoint将使用当前日期和执行代码的用户的凭据。
  • 虽然您可以在上传后更新文件的ListItem属性,但无法设置任何元数据。

另一种选择是使用客户端对象模型并使用File.SaveBinaryDirect上传文件。此选项比简单地复制文件更好,因为它允许您覆盖现有文件,但您仍然无法直接访问文件的属性。上传可以这么简单:

var clientContext = new ClientContext("http://intranet.contoso.com");
    using (var fileStream =new FileStream("NewDocument.docx", FileMode.Open))
        ClientOM.File.SaveBinaryDirect(clientContext,
            "/Shared Documents/NewDocument.docx", fileStream, true);

另一种选择是使用客户端对象模型连接到库,然后使用FileCollection.Add创建文件,例如

Microsoft.SharePoint.Client.File uploadFile = documentsList.RootFolder.Files.Add(
fileCreationInformation);

检查此问题,Upload a document to a SharePoint list from Client Side Object Model,了解如何使用SaveBinaryDirect和FileCollection.Add。答案显示了如何上传文件以及如何修改其属性