Как загрузить файл на сервер общей точки с локального компьютера, подключенного через LAN, используя C#

Я действительно новичок в этом материале точки обмена. У нас есть сервер точки обмена с учетной записью администратора, и я подключал его со своего локального компьютера через ip и порт точки разделения вручную. Но мне нужно написать программу, которая должна загружать файлы на сервер общего ресурса с локального компьютера на сервер. Возможно ли использовать 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/ не может быть найдено. Убедитесь, что вы правильно ввели URL-адрес. Если URL-адрес должен обслуживать существующее содержимое, системному администратору может потребоваться добавить новое сопоставление URL-адреса запроса в предполагаемое применение "

и не могу загрузить файл. Но если я скопировал и вставил тот же URL на моем локальном компьютере, я смогу получить доступ к общему ресурсу, установленному на сервере, и даже мог загрузить файлы вручную с моего локального компьютера.

Как загрузить файл на сервер sharepoint с локальной машины, подключенной к локальной сети..??

2 ответа

Решение

siteURL = Основной URl разделяемой точки (например) " http://10.0.0.14:48487/";

documentListName = любая из папок в shrepoint (например) Shared Documents

documentName = имя файла (например, sampleword.docx, readme.txt и т. д.)

documentStream = формат байта файла, который мы собираемся загрузить.

(например)byte[] bytefile = System.IO.File.ReadAllBytes(путь к файлу + имя файла);

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)
    {
    }
}

}

Это прекрасно работает для меня:):)

Убедитесь, что вы подключаетесь к существующему семейству сайтов. ошибка, которую вы получили, достаточно понятна, она не может найти семейство сайтов, на которое вы указали. проверь свою строку sharePointSite чтобы убедиться, что нет опечатки и что он обращается к правильному корневому семейству сайтов. Помните с SharePoint SPSite = Семейство сайтов SPWeb = веб-сайт в семействе сайтов.

Я не вижу никаких явных ошибок в вашем коде, не запустив что-либо самостоятельно, за исключением того, чтобы убедиться, что при вызове oSite.openweb() это относится к одному сайту в семействе сайтов.

Другие вопросы по тегам