如何使用c#从通过lan连接的本地计算机上传共享点服务器中的文件

时间:2015-08-21 05:26:25

标签: c# sharepoint spsite

我真的很喜欢这个共享点的东西。我们有一个带有管理员帐户的共享点服务器,我通过ip和手动共享点端口从我的本地机器连接它。 Nut我需要编写一个程序,需要将文件从本地机器上传到服务器的共享点服务器。是否有可能使用winforms?或者只能在网络服务中使用。?

   using (SPSite oSite = new SPSite(sharePointSite))
{
    using (SPWeb oWeb = oSite.OpenWeb())
    {
        if (!System.IO.File.Exists(fileToUpload))
            throw new FileNotFoundException("File not found.", fileToUpload);    



    SPFolder myLibrary = oWeb.Folders[documentLibraryName];

    // Prepare to upload
    Boolean replaceExistingFiles = true;
    String fileName = System.IO.Path.GetFileName(fileToUpload);
    FileStream fileStream = File.OpenRead(fileToUpload);

    // Upload document
    SPFile spfile = myLibrary.Files.Add(fileName, fileStream, replaceExistingFiles);

    // Commit 
    myLibrary.Update();
}

}

尝试使用上面的代码,我从以下行获得错误

  

使用(SPSite oSite =新SPSite(sharePointSite))

,错误是

  

"找不到http://server:port/的Web应用程序。验证您是否正确输入了URL。如果URL应该为现有内容提供服务,则系统管理员可能需要将新请求URL映射添加到预期的应用程序"

我无法上传文件。 但是如果我在本地机器中复制并粘贴相同的URL,我就可以访问服务器中部署的sharepoint,甚至可以从本地机器上手动上传文件。

如何从与LAN连接的本地计算机上传sharepoint服务器中的文件。??

2 个答案:

答案 0 :(得分:1)

siteURL =共享点的主要URl(例如)“http://10.0.0.14:48487/”;

documentListName = shrepoint中的任何文件夹(例如)共享文档

documentName =文件名称(例如)sampleword.docx,readme.txt等

documentStream =我们要上传的文件的字节格式。

  

例如)byte [] bytefile = System.IO.File.ReadAllBytes(filepath + filename);

public static void UploadDocument(string siteURL, string documentListName, string documentListURL,string documentName, byte[] documentStream = null)
    {  

     try
        {
        using (SP.ClientContext clientContext = new SP.ClientContext(siteURL))
        {

            #region"Only if you have credentials"
            NetworkCredential Cred = new NetworkCredential("username", "password");
            clientContext.Credentials = Cred;
            #endregion


            SP.List documentsList = clientContext.Web.Lists.GetByTitle(documentListName);

            var fileCreationInformation = new SP.FileCreationInformation();
            //Assign to content byte[] i.e. documentStream

            fileCreationInformation.Content = documentStream;
            //Allow owerwrite of document

            fileCreationInformation.Overwrite = true;
            //Upload URL

            fileCreationInformation.Url = documentName;

            Microsoft.SharePoint.Client.File uploadFile = documentsList.RootFolder.Files.Add(
                fileCreationInformation);


            uploadFile.ListItemAllFields.Update();
            clientContext.ExecuteQuery();

        }
    }
    catch (Exception ex)
    {
    }
}

}

这对我来说很完美:) :))

答案 1 :(得分:0)

确保您连接到现有网站集。您收到的错误非常自我解释,它无法找到您指向的网站集。检查字符串sharePointSite以确保没有拼写错误并且它正在访问正确的根网站集。请记住,使用SharePoint SPSite =网站集SPWeb =网站集中的网站。

我无法在不运行任何内容的情况下看到代码中的任何明显错误,除非确保在您为网站集中的单个网站调用oSite.openweb()时。 / p>