使用Web服务将文档上载到sharepoint的最简单方法

时间:2010-01-27 14:23:17

标签: c# sharepoint-2007

我想上传到一个选定的文档(来自我的系统。我有它的路径)。 到Sharepoint上的目标路径(可能是列表或文件夹)。

我正在使用Web服务(C#)远程访问sharepoint。 我通过使用CopyIntoItems方法阅读各种解决方案。 但没有得到适当的例子(无法正确传递参数。在msdn上给出的示例)

任何人都可以帮助我获得简单易懂的解决方案。

示例:

Source_FileUrl =“c:/SampleFile.txt”; Desination_Url =“http://MyServer/Site/List/Folder”;

只想在Destination_Url上传“SampleFile.txt”。

1 个答案:

答案 0 :(得分:4)

试试这个

try
    {

    //Copy WebService Settings 
    string webUrl           = "http://sharepointportal.ABC.com/";
    WSCopy.Copy copyService = new WSCopy.Copy();
    copyService.Url         = webUrl + "/_vti_bin/copy.asmx";
    copyService.Credentials = new NetworkCredential("username", "****", "Domain");

    //Declare and initiates the Copy WebService members for uploading 

    string sourceUrl        = "C:\\Work\\Ticket.Doc";   

    //Change file name if not exist then create new one     
    string[] destinationUrl    = { "http://sharepointportal.ABC.com/personal/username/Document Upload/Testing Document/newUpload.Doc" };

    WSCopy.CopyResult cResult1 = new WSCopy.CopyResult();

    WSCopy.CopyResult cResult2 = new WSCopy.CopyResult();

    WSCopy.CopyResult[] cResultArray = { cResult1, cResult2 };

    WSCopy.FieldInformation fFiledInfo = new WSCopy.FieldInformation();

    fFiledInfo.DisplayName = "Description";

    fFiledInfo.Type        = WSCopy.FieldType.Text;

    fFiledInfo.Value       = "Ticket";

    WSCopy.FieldInformation[] fFiledInfoArray = { fFiledInfo }; 

    FileStream strm = new FileStream(sourceUrl, FileMode.Open, FileAccess.Read); 

    byte[] fileContents = new Byte[strm.Length]; 

    byte[] r = new Byte[strm.Length];

    int ia = strm.Read(fileContents, 0, Convert.ToInt32(strm.Length));
    strm.Close();
    //Copy the document from Local to SharePoint 

    uint copyresult = copyService.CopyIntoItems(sourceUrl, destinationUrl, fFiledInfoArray, fileContents, out cResultArray); 

    MessageBox.Show("Suceess");  

  }
 catch (Exception ex)    
 { 
    MessageBox.Show(ex.Message);

 }