是否可以使用Windows应用程序(C#)远程上传文件到Sharepoint服务器?
谢谢。
答案 0 :(得分:2)
是的,尽管您可能需要“远程”计算机上的某些SharePoint程序集才能实现您的需求。
Uploading files using Client Object Model in SharePoint 2010是SharePoint 2010的一个很好的起点。
答案 1 :(得分:1)
如果您使用的是2007版(WSS 3.0),可以在此链接上找到上传文件的不同方法的精彩摘要:http://vspug.com/smc750/2009/05/19/uploading-content-into-sharepoint-let-me-count-the-ways/
如果您的服务器场是32位,则必须非常小心,在这种情况下,如果要并行上载大文件或多个文件,则很容易耗尽w3wp.exe进程中的所有可用内存,尤其是农场很繁忙。在这种情况下,您可能希望使用上面链接中描述的RPC接口,因为这是唯一可以在块中上传文件的接口。使用所有其他方式,上传的整个文件必须首先加载到w3wp的内存中,然后才能提交到SharePoint列表项。
对于涉及SharePoint对象模型的方法,您可能希望编写自己的Web服务外观,以使没有SharePoint dll的客户端能够上载文件(如果需要,可以使用+元数据)。
答案 2 :(得分:1)
您可以在sp2010中使用客户端对象模型,而不是直接与Web服务通信。
从我上传的个人资料图片应用程序中获取:
http://spc3.codeplex.com/SourceControl/changeset/view/57957#1015709
using (ClientContext context = new ClientContext(siteurl)) {
context.AuthenticationMode = ClientAuthenticationMode.Default;
List list = context.Web.Lists.GetByTitle(listname);
context.Load(list);
context.Load(list.RootFolder);
context.ExecuteQuery();
string url = siteurl.CombineUrl(list.RootFolder.ServerRelativeUrl).CombineUrl(listfolder).CombineUrl(name);
FileCreationInformation fci = new FileCreationInformation();
fci.Content = data;
fci.Overwrite = true;
fci.Url = url;
Microsoft.SharePoint.Client.File file = list.RootFolder.Files.Add(fci);
context.ExecuteQuery();
}
答案 3 :(得分:0)
我在Visual Studio中编写了一个名为SharePoint.DesignFactory.ContentFiles的可用作NuGet包的工具。使用此工具,您可以管理包含要上载到SharePoint内容数据库的元数据的所有文件。您可以将此用于SharePoint 2007(当前必须在SharePoint计算机本身上工作)或SharePoint 2010和Office 365.在这种情况下,您可以在未安装SharePoint的计算机上工作。有关工具的博文,请参阅http://weblogs.asp.net/soever/archive/tags/SharePoint.DesignFactory.ContentFiles/default.aspx。