c# – 更新的listitem属性未提交对sharepoint的更改
发布时间:2020-12-16 01:44:29 所属栏目:百科 来源:网络整理
导读:我正在将文档上传到sharepoint ..但是我想提供一个自定义名称而不是它继承我上传的文件的名称. 我的代码基于这个解决方案:http://www.codeproject.com/Articles/103503/How-to-upload-download-a-document-in-SharePoint-20.aspx 但这不起作用. 另外,我还想
|
我正在将文档上传到sharepoint ..但是我想提供一个自定义名称而不是它继承我上传的文件的名称.
我的代码基于这个解决方案:http://www.codeproject.com/Articles/103503/How-to-upload-download-a-document-in-SharePoint-20.aspx 但这不起作用. 另外,我还想提供文件的标题: uploadFile.ListItemAllFields.FieldValues["Title"] = "my custom title"; 但是,一旦文件完成其upload..i登录到sharepoint并注意标题尚未应用. 我如何整合上传文件并应用新名称? 非常感谢, 编辑: using (var clientContext = GetNewContext())
{
var uploadLocation = string.Format("{0}{1}/{2}",SiteUrl,Helpers.ListNames.RequestedDocuments,Path.GetFileName(document));
//Get Document List
var documentslist = clientContext.Web.Lists.GetByTitle(Helpers.ListNames.RequestedDocuments);
var fileCreationInformation = new FileCreationInformation
{
Content = System.IO.File.ReadAllBytes(document),//Assign to content byte[] i.e. documentStream
Overwrite = true,//Allow owerwrite of document
Url = uploadLocation //Upload URL,};
var uploadFile = documentslist.RootFolder.Files.Add(fileCreationInformation);
uploadFile.ListItemAllFields.FieldValues["Title"] = title;
uploadFile.ListItemAllFields.Update();
clientContext.ExecuteQuery();
}
site.SubmitChanges(ConflictMode.FailOnFirstConflict,true);
解决方法
将文件添加到Files集合后,您将缺少对clientContext.Load的调用.有关更多信息,请参阅这些博文:
https://www.c-sharpcorner.com/code/965/programmatically-upload-document-using-client-object-model-in-sharepoint.aspx https://zimmergren.net/sp-2010-uploading-files-using-the-client-om-in-sharepoint-2010/ 此代码示例来自上面链接的第一篇博文: 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();
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
