Загрузите файл с метаданными и зарегистрируйтесь в папке Sharpoint с помощью клиентской объектной модели.

Привет, я пытаюсь загрузить файл в sharepoint 2010, используя клиентский API с метаданными, а также зарегистрировать файл после того, как закончу. Ниже мой код:

public void UploadDocument (папка SharePointFolder, строковое имя файла, логическое перезапись) {

var fileInfo = new FileInfo(filename);
var targetLocation = String.Format("{0}{1}{2}", folder.ServerRelativeUrl,
    Path.AltDirectorySeparatorChar, fileInfo.Name);

using (var fs = new FileStream(filename, FileMode.Open))
{
    SPFile.SaveBinaryDirect(mClientContext, targetLocation, fs, overwrite);
}

// doesn't work
SPFile newFile = mRootWeb.GetFileByServerRelativeUrl(targetLocation);
mClientContext.Load(newFile);
mClientContext.ExecuteQuery();

//check out to make sure not to create multiple versions
newFile.CheckOut();

// use OverwriteCheckIn type to make sure not to create multiple versions 
newFile.CheckIn("test", CheckinType.OverwriteCheckIn);
mClientContext.Load(newFile);
mClientContext.ExecuteQuery();

//SPFile uploadFile = mRootWeb.GetFileByServerRelativeUrl(targetLocation);

//uploadFile.CheckOut();
//uploadFile.CheckIn("SOME VERSION COMMENT I'D LIKE TO ADD", CheckinType.OverwriteCheckIn);

//mClientContext.ExecuteQuery();

}

Я могу загрузить файл, но не могу добавить какие-либо метаданные, и файл извлечен. Я хочу добавить некоторые метаданные и зарегистрировать файл после того, как закончу.

Мой класс SharePointFolder имеет serverRelativeUrl пути к папке для загрузки. Любая помощь очень ценится.


person vince anon    schedule 16.08.2013    source источник


Ответы (1)


Вам нужны учетные данные перед executeQuery(); и SaveBinaryDirect();

Например:

mClientContext.Credentials = new NetworkCredential("LoginID","LoginPW", "LoginDomain");

SPFile newFile = mRootWeb.GetFileByServerRelativeUrl(targetLocation);
mClientContext.Load(newFile);
mClientContext.ExecuteQuery();
person Tony Wu    schedule 27.06.2014