Using PowerShell to Bulk Upload Files to SharePoint

12 May, 2014

Using PowerShell to Bulk Upload Files to SharePoint

While building a school’s Learning Gateway I needed to bulk upload all their student images into a picture library so that the My Children web part could display them. Since there were several hundred of them I wrote a little PowerShell script to perform this.

$siteUrl = “http://sharepoint/schools/test” $listName = “Students Picture Library” [system.reflection.assembly]::LoadWithPartialName(“Microsoft.Sharepoint”) $site = New-Object Microsoft.SharePoint.SPSite($siteUrl) $web = $site.OpenWeb() $list = $web.Lists[$listName] $fileCollection = $list.RootFolder.Files $files = get-childItem -Exclude *.ps1 foreach ($file in $files) {    $stream = $file.OpenRead()     $uploaded = $fileCollection.Add($file.Name, $stream, $TRUE)     “Uploaded ” + $file.Name    if ($stream) {$stream.Dispose()} } if ($web) {$web.Dispose()} if ($site) {$site.Dispose()}

In order to use this: 

  1. Save as as .ps1 file in the same folder as the files to upload.
  2. Change the site url and name of the list at the beginning of the script to your values
  3. Make sure that only the files to upload and the ps1 file is in the folder
  4. Open PowerShell using Run As Administrator
  5. Navigate to the folder
  6. Run the .ps1 file

The script will then iterate through all files in the current folder and upload them to the given list, overwriting them if they already exist.

Richard Willis

Written by

Copyright © 2024 SalamanderSoft Limited