Как загрузить файл на сервер общей точки с локального компьютера, подключенного через 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() это относится к одному сайту в семействе сайтов.