我正在将文档上传到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://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(); }