Загрузка файла с метаданными

Вы могли помочь мне для того, как добавить файл к библиотеке документа 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 столбца в своей библиотеке документа.

5
задан Zachary Dow 29 July 2015 в 21:56
поделиться

2 ответа

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()
16
ответ дан 18 December 2019 в 06:34
поделиться

Существует также перегрузка, в которой вы можете отправить хеш-таблицу с метаданными, которые вы хотите добавить. Например:

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);
8
ответ дан 18 December 2019 в 06:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: