当我们上传文件时,是否可以更新元数据? 同样在检索时,我们需要随文件一起获取元数据。
基本上我试图避免两个单独的电话? SharePoint API是否支持此功能?
答案 0 :(得分:0)
SharePoint无法提供REST API来实现它。
作为一种解决方法,我们可以使用CSOM(C#)来实现它。
public Boolean UploadDocument(String fileName, String filePath, List metaDataList)
{
SP.ClientContext ctx = new SP.ClientContext("http://yoursharepointURL");
Web web = ctx.Web;
FileCreationInformation newFile = new FileCreationInformation();
newFile.Content = System.IO.File.ReadAllBytes(@"C: \TestFile.doc");
newFile.Url = "/" + fileName;
List docs = web.Lists.GetByTitle(“Shared Documents”);
Microsoft.SharePoint.Client.File uploadFile = docs.RootFolder.Files.Add(newFile);
context.Load(uploadFile);
context.ExecuteQuery();
SPClient.ListItem item = uploadFile.ListItemAllFields;
//Set the metadata
string docTitle = string.Empty;
item["Title"] = docTitle;
item.Update();
context.ExecuteQuery();
}
如果要从UI使用Ajax调用Web服务,我们可以使用CSOM(C#)创建自定义Web服务,然后使用Ajax使用Web服务。
答案 1 :(得分:0)
这很令人沮丧,但是您可以在一个调用中上传初始版本并设置元数据。但不能上传新版本和设置元数据,而只能作为单独的调用。我正在从具有多个版本的DMS传输文件,Sharepoint中的版本历史记录将不匹配。为了保持一致,我还将初始版本和元数据作为两个调用进行传输。通知客户,并且版本历史记录确定。导入的文件显示为空版本。