首页
学习
活动
专区
工具
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”列表中。

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

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

相关·内容

领券