首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过内置Web服务将文件上载到SharePoint

您好!您的问题是关于如何通过内置Web服务将文件上载到SharePoint。以下是我的回答:

在SharePoint中,通过内置Web服务将文件上载到SharePoint的方法是使用Lists Web服务。Lists Web服务是SharePoint中的一个SOAP Web服务,它提供了一组方法来操作SharePoint列表和文档库中的文件和文件夹。

以下是使用Lists Web服务将文件上载到SharePoint的步骤:

  1. 首先,您需要在SharePoint中启用Lists Web服务。您可以在SharePoint管理中心中找到Lists Web服务,并启用它。
  2. 然后,您需要在您的代码中添加对Lists Web服务的引用。您可以使用Visual Studio中的“添加服务引用”功能来添加对Lists Web服务的引用。
  3. 接下来,您需要使用Lists Web服务中的UploadDocument方法来上载文件。UploadDocument方法需要以下参数:
  • url:SharePoint站点的URL。
  • listName:文档库的名称。
  • fileName:要上载的文件的名称。
  • fileContent:要上载的文件的内容。

以下是一个使用C#语言上载文件的示例代码:

代码语言:csharp
复制

using System;

using System.IO;

using System.Net;

using System.Xml;

class Program

{

代码语言:txt
复制
   static void Main(string[] args)
代码语言:txt
复制
   {
代码语言:txt
复制
       string url = "http://your-sharepoint-site-url";
代码语言:txt
复制
       string listName = "Documents";
代码语言:txt
复制
       string fileName = "example.txt";
代码语言:txt
复制
       string filePath = @"C:\example.txt";
代码语言:txt
复制
       byte[] fileContent = File.ReadAllBytes(filePath);
代码语言:txt
复制
       UploadDocument(url, listName, fileName, fileContent);
代码语言:txt
复制
   }
代码语言:txt
复制
   static void UploadDocument(string url, string listName, string fileName, byte[] fileContent)
代码语言:txt
复制
   {
代码语言:txt
复制
       string soapRequest =
代码语言:txt
复制
           "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
代码语言:txt
复制
           "<soap:Body>" +
代码语言:txt
复制
           "<CopyIntoItems xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\">" +
代码语言:txt
复制
          <SourceUrl>%SOURCE%</SourceUrl>" +
代码语言:txt
复制
           "<DestinationUrls>" +
代码语言:txt
复制
          <string>%DESTINATION%</string>" +
代码语言:txt
复制
           "</DestinationUrls>" +
代码语言:txt
复制
          <Fields>" +
代码语言:txt
复制
          <FieldInformation Type=\"File\" DisplayName=\"FileLeafRef\" InternalName=\"FileLeafRef\" Value=\"%FILENAME%\" />" +
代码语言:txt
复制
          <FieldInformation Type=\"File\" DisplayName=\"FileRef\" InternalName=\"FileRef\" Value=\"%DESTINATION%/%FILENAME%\" />" +
代码语言:txt
复制
          <FieldInformation Type=\"File\" DisplayName=\"ContentTypeId\" InternalName=\"ContentTypeId\" Value=\"0x0101\" />" +
代码语言:txt
复制
           "</Fields>" +
代码语言:txt
复制
          <Stream>%CONTENT%</Stream>" +
代码语言:txt
复制
           "</CopyIntoItems>" +
代码语言:txt
复制
           "</soap:Body>" +
代码语言:txt
复制
           "</soap:Envelope>";
代码语言:txt
复制
       soapRequest = soapRequest.Replace("%SOURCE%", "file:///" + filePath);
代码语言:txt
复制
       soapRequest = soapRequest.Replace("%DESTINATION%", url + "/" + listName);
代码语言:txt
复制
       soapRequest = soapRequest.Replace("%FILENAME%", fileName);
代码语言:txt
复制
       soapRequest = soapRequest.Replace("%CONTENT%", Convert.ToBase64String(fileContent));
代码语言:txt
复制
       HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + "/_vti_bin/lists.asmx");
代码语言:txt
复制
       request.Method = "POST";
代码语言:txt
复制
       request.ContentType = "text/xml; charset=utf-8";
代码语言:txt
复制
       request.Headers.Add("SOAPAction", "http://schemas.microsoft.com/sharepoint/soap/CopyIntoItems");
代码语言:txt
复制
       using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
代码语言:txt
复制
       {
代码语言:txt
复制
           writer.Write(soapRequest);
代码语言:txt
复制
       }
代码语言:txt
复制
       using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
代码语言:txt
复制
       {
代码语言:txt
复制
           using (StreamReader reader = new StreamReader(response.GetResponseStream()))
代码语言:txt
复制
           {
代码语言:txt
复制
               string responseContent = reader.ReadToEnd();
代码语言:txt
复制
               XmlDocument xmlDoc = new XmlDocument();
代码语言:txt
复制
               xmlDoc.LoadXml(responseContent);
代码语言:txt
复制
               XmlNode resultNode = xmlDoc.SelectSingleNode("//CopyResult");
代码语言:txt
复制
               if (resultNode != null)
代码语言:txt
复制
               {
代码语言:txt
复制
                   Console.WriteLine("File uploaded successfully.");
代码语言:txt
复制
               }
代码语言:txt
复制
               else
代码语言:txt
复制
               {
代码语言:txt
复制
                   XmlNode errorNode = xmlDoc.SelectSingleNode("//errorstring");
代码语言:txt
复制
                   if (errorNode != null)
代码语言:txt
复制
                   {
代码语言:txt
复制
                       Console.WriteLine("Error uploading file: " + errorNode.InnerText);
代码语言:txt
复制
                   }
代码语言:txt
复制
                   else
代码语言:txt
复制
                   {
代码语言:txt
复制
                       Console.WriteLine("Unknown error uploading file.");
代码语言:txt
复制
                   }
代码语言:txt
复制
               }
代码语言:txt
复制
           }
代码语言:txt
复制
       }
代码语言:txt
复制
   }

}

代码语言:txt
复制

这个示例代码将上传一个名为“example.txt”的文件到SharePoint站点的“Documents”列表中。

希望这个回答能够帮助您解决问题。如果您有任何其他问题,请随时问我。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • [转载]微服务实战(六):选择微服务部署策略

    部署一个单体式应用意味运行大型应用的多个副本,典型的提供若干个(N)服务器(物理或者虚拟),运行若干个(M)个应用实例。部署单体式应用不会很直接,但是肯定比部署微服务应用简单些。 一个微服务应用由上百个服务构成,服务可以采用不同语言和框架分别写就。每个服务都是一个单一应用,可以有自己的部署、资源、扩展和监控需求。例如,可以根据服务需求运行若干个服务实例,除此之外,每个实例必须有自己的CPU,内存和I/O资源。尽管很复杂,但是更挑战的是服务部署必须快速、可靠和性价比高。 有一些微服务部署的模式,先讨论一下每个主机多服务实例的模式。

    02

    利用PHP内置SERVER开启web服务(本地开发使用)

    PHP 5.4.0起, CLI SAPI 提供了一个内置的Web服务器,这个内置的Web服务器主要用于本地开发使用,不可用于线上产品环境。URI请求会被发送到PHP所在的的工作目录(Working Directory)进行处理,除非你使用了-t参数来自定义不同的目录。如果请求未指定执行哪个PHP文件,则默认执行目录内的index.php 或者 index.html。如果这两个文件都不存在,服务器会返回404错误。当你在命令行启动这个Web Server时,如果指定了一个PHP文件,则这个文件会作为一个“路由”脚本,意味着每次请求都会先执行这个脚本。如果这个脚本返回 FALSE ,那么直接返回请求的文件(例如请求静态文件不作任何处理)。否则会把输出返回到浏览器。

    03

    PHP4在WinXP下IIS和Apache2服务器上的安装实例

    最近,有许多朋友问我在WindowsXp下PHP的安装过程,正好最近我在自己的机器上成功的以模块化的方式安装了PHP4.23。既然这么多朋友需要,我就以最常见的IIS和Apache服务器为例,把PHP在WindowsXP下的安装过程写出来吧,希望能对要安装PHP的朋友有点帮助。如果不加特殊说明,以下的介绍同时也适用于Win2000版本。 一、概述:    在安装之间,你必须先弄懂PHP安装的两种不同模式,一种是Cgi模式(CGI executable),另一种是模块化安装方式。可以这样来区别:在CGI模式下,如果客户机请求一个php文件,Web服务器就调用php.exe去解释这个文件,然后再把解释的结果以网页的形式返回给客户机;而在模块化中,PHP是与Web服务器一起启动并运行的,所以从某种角度上来说,以apache模块方式安装的PHP4有着比CGI模式更好的安全性以及更好的执行效率和速度。 二、软件准备:    正所谓"工欲善其事 必先利其器",要想在你的机器上运行PHP得首先准备需要的软件。

    00
    领券