今天接到上级通知,说我们的项目将会用把各种附件全部上传到sharepoint服务器上,如是开始研究.
一开始就想到了有2种方式处理,一是通过webservice,代码如下
lfq_list.Lists listService = new lfq_list.Lists();
System.Net.NetworkCredential credit = new System.Net.NetworkCredential("administrator", "123");
listService.Credentials = credit;
listService.UnsafeAuthenticatedConnectionSharing = true;
//listService.u
try
{
listService.AddList("qiang", "ll", 100);
string mode = @"
<Method ID=""1"" Cmd=""New"">
<Field Name=""ID"">New</Field>
<Field Name=""Title"">qiang2</Field>
</Method>
";
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
System.Xml.XmlElement elBatch = xmlDoc.CreateElement("Batch");
elBatch.SetAttribute("OnError", "Continue");
elBatch.SetAttribute("ListVersion", "1");
elBatch.InnerXml = mode;
listService.UpdateListItems("doc", elBatch);
string address = listService.AddAttachment("test", "2", FileUpload1.FileName, FileUpload1.FileBytes);
}
catch (System.Web.Services.Protocols.SoapException ex)
{
Response.Write("Message:\n" + ex.Message + "\nDetail:\n" +
ex.Detail.InnerText + "\nStackTrace:\n" + ex.StackTrace);
}
还有一种是通过splistitem 来处理,代码如下
using (SPSite site = new SPSite("http://jake:10001/bug "))
{
//site.c
using (SPWeb web = site.OpenWeb())
{
web.AllowUnsafeUpdates = true;
SPList list = web.Lists["doc"];
SPItem item= list.Items.Add("jake", SPFileSystemObjectType.File);
// SPListItem item = list.Items[1];
//SPAttachmentCollection attachments = item.Attachments;
Response.Write("<br><br>" + list.ID);
// item.i
// item.Attachments.AddNow(FileUpload1.FileName, FileUpload1.FileBytes);
}
}
但这两种都只是针对普通的自定义列表添加附件形式来实现.
同时可能会考虑到另外一种情况,是要把上传到文档库,然而这个东西,我现在一直在试,如果用spsite,是能解决问题?然而用spsite一定要在sharepoint服务上处理,如果离开sharepoint服务器,处理不了.这的确比较麻烦.
而用webservice,到现在都还没有找到方案.真是悲哀啊.
不知哪位高手有碰过这问题?还不忘赐教.