Вы могли помочь мне для того, как добавить файл к библиотеке документа Sharepoint? Я нашел некоторые статьи в.NET, но я не получил полное понятие того, как выполнить это.
Я загрузил файл без метаданных при помощи этого кода:
if (fuDocument.PostedFile != null)
{
if (fuDocument.PostedFile.ContentLength > 0)
{
Stream fileStream = fuDocument.PostedFile.InputStream;
byte[] byt = new byte[Convert.ToInt32(fuDocument.PostedFile.ContentLength)];
fileStream.Read(byt, 0, Convert.ToInt32(fuDocument.PostedFile.ContentLength));
fileStream.Close();
using (SPSite site = new SPSite(SPContext.Current.Site.Url))
{
using (SPWeb webcollection = site.OpenWeb())
{
SPFolder myfolder = webcollection.Folders["My Library"];
webcollection.AllowUnsafeUpdates = true;
myfolder.Files.Add(System.IO.Path.GetFileName(fuDocument.PostedFile.FileName), byt);
}
}
}
}
Этот код хорошо работает, как, но я должен загрузить файл с метаданными. Помогите мне путем редактирования этого кода, если это возможно. Я создал 3 столбца в своей библиотеке документа.
SPFolder.Files.Add возвращает объект SPFile
SPFile.Item возвращает SPListItem объект
Затем вы можете использовать SPListItem ["FieldName"] для доступа к каждому полю (см. Нижнюю часть ссылки SPListItem)
Итак, добавьте это в свой код (это не проверено, но вы должны понять )
SPFile file = myfolder.Files.Add(System.IO.Path.GetFileName(document.PostedFile.FileName);
SPListItem item = file.Item;
item["My Field"] = "Some value for your field";
item.Update()
Существует также перегрузка, в которой вы можете отправить хеш-таблицу с метаданными, которые вы хотите добавить. Например:
Hashtable metaData = new Hashtable();
metaData.Add("ContentTypeId", "some CT ID");
metaData.Add("Your Custom Field", "Your custom value");
SPFile file = library.RootFolder.Files.Add(
"filename.fileextension",
bytearray,
metaData,
false);