Загрузка файлов с метаданными с использованием веб-служб SharePoint - PullRequest
0 голосов
/ 17 июня 2011

Я пытаюсь загрузить файл с метаданными с помощью веб-служб SharePoint.Первый подход, который я выбрал, - это использование объектов WebRequest / WebResponse, а затем обновление метаданных с использованием метода Lists.asmx - UpdateListItems.Это работает просто отлично, но создает две версии файла.Второй подход, который я выбрал, состоял в том, чтобы использовать веб-сервис Copy.asmx и использовать метод CopyIntoItems, который копирует данные файла вместе с метаданными.Это работает нормально и создает v 1.0, но когда я пытаюсь загрузить тот же файл с некоторыми изменениями в метаданных (используя Copy.asmx), он ничего не обновляет.Кто-нибудь сталкивался с той же проблемой или есть другие идеи для реализации требуемой функциональности.

Спасибо, Киран

1 Ответ

1 голос
/ 17 июня 2011

Это может быть немного темой (извините), но я бы хотел посоветовать вам ярлык, экономящий время при работе с SharePoint удаленно, http://www.bendsoft.com/net-sharepoint-connector/

Позволяет работать со списками SharePoint и библиотеками документов с помощью SQL и хранимых процедур.

Загрузка файла в виде байтового массива

...
string sql = "CALL UPLOAD('Shared Documents', 'Images/Logos/mylogo.png', @doc)";

byte[] data = System.IO.File.ReadAllBytes("C:\\mylogo.png");
SharePointCommand cmd = new SharePointCommand(sql, myOpenConnection);
cmd.Parameters.Add("@doc", data);

cmd.ExecuteNonQuery();
...

Загрузка потока ввода

using (fs == System.IO.File.OpenRead("c:\\150Mb.bin")) {
    string sql = "CALL UPLOAD('Shared Documents', '150Mb.bin', @doc)";
    SharePointCommand cmd = new SharePointCommand(sql, myOpenConnection);
    cmd.Parameters.Add("@doc", fs);
    cmd.ExecuteNonQuery();
}

Существует несколько способов упростить удаленное управление документами

UPLOAD(lisname, filename, data)
DOWNLOAD(listname, filename)
MOVE(listname1, filename1, listname2, filename2)
COPY(listname1, filename1, listname2, filename2)
RENAME(listname, filename1, filename2)
DELETE(listname, filename)
CREATEFOLDER(listname, foldername)
CHECKOUT(list, file, offline, lastmodified)
CHECKIN(list, file, comment, type)
UNDOCHECKOUT(list, file)

Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...