Ниже приведен фрагмент кода, который я использовал в прошлом для загрузки документа в библиотеку документов SharePoint с помощью SDK веб-служб SharePoint.
var copyClient = new Copy();
copyClient .Credentials = credentials; // <-- Create Network Credentials
var siteUrl = "http://....";
var libraryName = "MyDocLibrary";
var localFilePath = "...";
var fileName = Path.GetFileName(localFilePath);
var destinationUrl = string.Format("{0}/{1}/{2}", siteUrl, libraryName, fileName);
var fileBytes = File.ReadAllBytes(localFilePath);
var info = new[]{new FieldInformation
{
DisplayName = fileName,
Id = Guid.NewGuid(),
InternalName = fileName,
Type = FieldType.File,
Value = fileName
}};
CopyResult[] results;
copyClient.CopyIntoItems(destinationUrl, new[] { destinationUrl }, info, fileBytes, out results);
FYI - этот прокси Copy
созданиспользуя старую школу Добавить веб-ссылку вместо новой Добавить сервисную ссылку .Я считаю, что проще использовать прокси старой школы при работе со старыми веб-службами ASMX SharePoint.
, и если вам нужно динамически изменить URL-адрес конечной точки, вы можете использовать следующее до вызова метода CopyIntoItems()
.
var copyServiceUrl = string.Concat(siteUrl, "/_vti_bin/Copy.asmx");
copyClient.Url = copyServiceUrl;