Загрузка файла в элементы списка Sharepoint - PullRequest
3 голосов
/ 08 декабря 2011

У меня есть пользовательский список sharepoint с колонкой заголовков, содержащей Servernames, и я получил много файлов .csv с тем же именем, что и заголовок

Возможно ли каким-либо образом загрузить их в элемент спискакак вложение со скриптом?Может быть, Powershell?Я получил более 100 файлов, поэтому было бы больно, если бы мне пришлось делать все это вручную.

Столбец «Файл и заголовок» выглядит следующим образом:

Title
Server1.domain.com

.csv
Server1.domain.com.csv

Искал довольнонекоторое время, но я не смог найти ничего, что мог бы использовать

1 Ответ

4 голосов
/ 08 декабря 2011

Подход:

  1. Перебирать элементы списка SharePoint.
  2. Загрузить соответствующий файл CSV с помощью SPListItem.Title
  3. Добавить файл как вложение к SPListItem.

Сценарий:

$w = Get-SPWeb http://List/Location/Url
$l = $w.Lists["TheList"]

foreach ($item in $l.Items)
{
     $file = Get-Item "$($item.Title).csv"
     $stream = $file.OpenRead()
     $buffer = New-Object byte[] $stream.length
     [void]$stream.Read($buffer, 0, $stream.Length)

     $item.Attachments.AddNow($file.Name, $buffer)
}

Вопросы:

  1. Удаление файлового потока
  2. Утилизация SPWeb объекта
  3. Обработка отсутствующих файлов

Редактировать

Две ошибки в первой попытке:

  1. SPAttachmentCollection.Add ожидает байтовый массив.
  2. SPAttachmentCollection.AddNow следует использовать для прямого добавления вложения (без обновления SPListItem)

Обновлен код ...

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