将文件上载到Sharepoint列表项

时间:2011-12-08 09:31:59

标签: sharepoint powershell sharepoint-2010

我有一个自定义的sharepoint列表,其中包含一个包含Servernames的标题列,我有很多与标题同名的.csv文件

以某种方式可以将em作为带脚本的附件上传到列表项吗?也许是Powershell? 我收到了100多个文件,所以如果我必须手动完成这个操作会很痛苦。

“文件和标题”列如下所示:

Title
Server1.domain.com

.csv
Server1.domain.com.csv

一直在四处寻找,但却找不到任何可以使用的东西

1 个答案:

答案 0 :(得分:4)

方法:

  1. 迭代SharePoint列表项。
  2. SPListItem.Title
  3. 加载相应的CSV文件
  4. 将文件作为附件添加到SPListItem
  5. 脚本:

    $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. 处理丢失的文件
    4. 修改

      第一次尝试有两个错误:

      1. SPAttachmentCollection.Add需要一个字节数组。
      2. SPAttachmentCollection.AddNow应该用于直接添加附件(不更新SPListItem
      3. 更新了代码......