gpt4 book ai didi

c# - 如何通过标准网络服务之一将文件上传到 SharePoint 库

转载 作者:行者123 更新时间:2023-11-30 19:49:41 24 4
gpt4 key购买 nike

我必须将一些 XML 文件上传到 SharePoint 库。我必须从不是 SharePoint 服务器之一的计算机上执行此操作(因此对象模型将不起作用)。该库还有一个自定义(整数)列,我必须为上传的文件设置它的值。

如何使用 SharePoint 2010 的标准 Web 服务上传文件和值?

最佳答案

我现在使用客户端对象模型解决了这个问题(正如 Doug 所建议的)。使用 COM 上传文件非常简单:

public void UploadXmlFile(string xmlContent, int orderNumber)
{
string filename = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") + "_" + orderNumber + ".xml";
ClientContext context = new ClientContext(absoluteHostUrl + relativeWebUrl);
using (MemoryStream stream = new MemoryStream())
{
// use a MemoryStream for the file contents
StreamWriter writer = new StreamWriter(stream);
writer.Write(xmlContent);
writer.Flush();
stream.Position = 0;
// ... and upload it.
Microsoft.SharePoint.Client.File.SaveBinaryDirect(
context,
"/" + relativeWebUrl + "Lists/" + libraryName + "/" + filename,
stream,
false);
}
// ...

...但是上传后文件被 checkout ,我仍然需要设置我的整数列:

    // ...
// get the created entry
Web web = context.Web;
List list = web.Lists.GetByTitle(libraryName);
ListItemCollection itemCol = list.GetItems(new CamlQuery() { ViewXml = "<View/>" });
context.Load(itemCol,
items => items
.Include(i => i[COLUMN_IMPORTORDERNUMBER])
.Where(i => (string)i[COLUMN_FILELEAFREF] == filename)
.Take(1)
);
context.ExecuteQuery();
// ... found it? ...
if (itemCol != null && itemCol.Count > 0)
{
ListItem item = itemCol[0];
// ... set the ImportOrderNumber
item[COLUMN_IMPORTORDERNUMBER] = orderNumber;
item.Update();
// ... and check in
item.File.CheckIn("Checked in by WebService", CheckinType.MajorCheckIn);
context.ExecuteQuery();
}
}

关于c# - 如何通过标准网络服务之一将文件上传到 SharePoint 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3609778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com