c#将文件上传到sharepoint(2个问题)

时间:2011-04-06 08:26:12

标签: c# sharepoint upload

我创建了一个可以将文件上传到我的sharepoint站点库的Web服务。这是我到目前为止的代码:

        [WebMethod]
        public string getLibraries(byte[] contents, String destUrl){
            String message = "1";
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                SPWeb site = new SPSite(destUrl).OpenWeb();
                site.AllowUnsafeUpdates = true;
                message = "2";
                EnsureParentFolder(site, destUrl);

                site.Files.Add(destUrl, contents);
                message = "3";
                site.AllowUnsafeUpdates = false;

            });
            return message;
        }

目前正在运作。但是在sharepoint中,您可以在库中添加新列。就像你想要添加文件的描述一样。

  

如何使用该文件上传这些额外的列?

我想弄清楚的另一件事: 现在它上传名为"System account"的文件。我已经尝试将webservice的凭据设置为客户端应用程序的凭据,但它没有更改它。

  

如何将此更改为使用网络服务的用户的登录信息?

示例:myDomain/User1

上传的文件

感谢 -gen -

2 个答案:

答案 0 :(得分:1)

        [WebMethod]
        public string getLibraries(byte[] contents, String destUrl, string description){
            String message = "1";
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                SPWeb site = new SPSite(destUrl).OpenWeb();
                site.AllowUnsafeUpdates = true;
                message = "2";
                EnsureParentFolder(site, destUrl);

                site.Files.Add(destUrl, contents);
                message = "3";

                SPListItem listItem = site.GetListItem(destUrl);
                listItem["Description"] = description;
                listItem.Update();

                site.AllowUnsafeUpdates = false;

            });
            return message;
        }

答案 1 :(得分:0)

我的第二个问题的答案:

SPUserToken token = new SPSite(destUrl).RootWeb.EnsureUser(userName).UserToken;
SPWeb site = new SPSite(destUrl, token).OpenWeb();