Skip to main content
commented out comments
Source Link
$webUrl  = "http://contoso.com";  http#http://contoso.com Replace with your Site Url

$docLibraryName = "Documents"; Documents##Documents - Replace with your library name

$docFolderName =  "SharePoint"; SharePoint##SharePoint - Replace with Folder name if you have sub folders in Library

$docNumber = "SeachDocument.docx"; SeachDocument##SeachDocument.docx - Replace with File name which you will have in file share location

try
  {
         
   $inputRowCollection = Get-ChildItem $DocumentsRepositoryPath -Recurse | Where-Object {$_.Name -like $docNumber+ "*"}
   
   if($inputRowCollection.Count -eq 0)
   {
    $row.IsMigrated = "File Missing"
   }
   
   if($inputRowCollection.Count -eq 1)
   {
    $row.IsMigrated = UploadFileInLibrary $webUrl  $docLibraryName $inputRowCollection.PSPath $docFolderName
   }
   elseif($inputRowCollection.Count -ge 1)
   {
    $row.IsMigrated = "Duplicate Documents"
   }
  }          
  catch          
  {
   Write-Host "File Path : ($inputRowCollection.PSPath) - Error ($documentData): "$_.Exception -f Red;
   Write-Output "File Path : ($inputRowCollection.PSPath) - Error ($documentData): "$_.Exception >> $ExceptionLogFile
   $logData = $logData + "`tNA`t" + $_.Exception + "`tFail`tNA"  
  }

#Function to upload Document into SharePoint library
function UploadFileInLibrary          
{
 [CmdletBinding()]          
 Param(          
 [Parameter(Mandatory=$true,ValueFromPipeline=$true)]          
 [string]$webUrl,          
 [Parameter(Mandatory=$true)]          
 [string]$DocLibName,          
 [Parameter(Mandatory=$true)]          
 [string]$FilePath,            
 [Parameter(Mandatory=$false)]          
 [string]$FolderName
 )              
        
  try
  {
 
 #region Code for Migration
            
 $spWeb = Get-SPWeb -Identity $webUrl
 
 $List = $spWeb.Lists[$DocLibName]          
 $folder = $List.RootFolder          
 if($FolderName -ne "")
 {
  $folder = $list.RootFolder.SubFolders[$FolderName]
 }
 $FileName = $FilePath.Substring($FilePath.LastIndexOf("\")+1)          
 $File= Get-ChildItem $FilePath  
 $fileExtension = ([System.IO.FileInfo] (Get-Item $File.FullName)).Extension
 [Microsoft.SharePoint.SPFile]$spFile = $spWeb.GetFile($folder.Url + "/" + $docNumber+$fileExtension)          
 $flagConfirm = 'y'          
 if($spFile.Exists -eq $true)          
 {          
 #    $flagConfirm = Read-Host "File $FileName already exists in library $DocLibName, do you    want to upload a new version(y/n)?"          
  return "Document Exist."
 }          
          
 if ($flagConfirm -eq 'y' -or $flagConfirm -eq 'Y')          
 {
  $spWeb.AllowUnsafeUpdates = $true;
  
  $fileStream = ([System.IO.FileInfo] (Get-Item $File.FullName)).OpenRead()
  $fileExtension = ([System.IO.FileInfo] (Get-Item $File.FullName)).Extension
    #Add file          
    write-host -NoNewLine -f yellow "Copying file " $File.Name " to " $folder.ServerRelativeUrl "..."          
    [Microsoft.SharePoint.SPFile]$spFile = $folder.Files.Add($folder.Url + "/" + $docNumber+$fileExtension, [System.IO.Stream]$fileStream, $true)          
    write-host -f Green "...Success!"          
    #Close file stream          
    $fileStream.Close()          
    write-host -NoNewLine -f yellow "Update file properties " $spFile.Name "..."
  
  #Check the whether exists or not in site
  $docContentType = $docContentType   

  if($docContentType -eq $IMS)
  {
   $docContentType = $List.ContentTypes[$docContentType]
   $spFile.Item["ContentTypeId"] = $docContentType.Id;
   $spFile.Item["Content Type"] = $docContentType.Name;
   $spFile.Item["Name"] = $docNumber
   $spFile.Item["Title"] = $docTitle     
   $spFile.Item.Update()          
   write-host -f Green "...Success!"
   $spFile.CheckIn("Checked In By Administrator");
            Write-Host "$($spFile.Name) Checked In" -ForeGroundColor Green
  } 
  
  $spWeb.AllowUnsafeUpdates = $false;
 }
        
          
 return "Uploaded";
 
 #endregion
 
 }
 catch
 {
  Write-Host "File Path : ($inputRowCollection.PSPath) - Error in DocumentsMigration method : "$_.Exception -f Red;
  Write-Output "File Path : ($inputRowCollection.PSPath) - Error in DocumentsMigration method: "$_.Exception >> $ExceptionLogFile
  return "Error while uploading";
 }
}
$webUrl  = "http://contoso.com";  http://contoso.com Replace with your Site Url

$docLibraryName = "Documents"; Documents - Replace with your library name

$docFolderName =  "SharePoint"; SharePoint - Replace with Folder name if you have sub folders in Library

$docNumber = "SeachDocument.docx"; SeachDocument.docx - Replace with File name which you will have in file share location

try
  {
         
   $inputRowCollection = Get-ChildItem $DocumentsRepositoryPath -Recurse | Where-Object {$_.Name -like $docNumber+ "*"}
   
   if($inputRowCollection.Count -eq 0)
   {
    $row.IsMigrated = "File Missing"
   }
   
   if($inputRowCollection.Count -eq 1)
   {
    $row.IsMigrated = UploadFileInLibrary $webUrl  $docLibraryName $inputRowCollection.PSPath $docFolderName
   }
   elseif($inputRowCollection.Count -ge 1)
   {
    $row.IsMigrated = "Duplicate Documents"
   }
  }          
  catch          
  {
   Write-Host "File Path : ($inputRowCollection.PSPath) - Error ($documentData): "$_.Exception -f Red;
   Write-Output "File Path : ($inputRowCollection.PSPath) - Error ($documentData): "$_.Exception >> $ExceptionLogFile
   $logData = $logData + "`tNA`t" + $_.Exception + "`tFail`tNA"  
  }

#Function to upload Document into SharePoint library
function UploadFileInLibrary          
{
 [CmdletBinding()]          
 Param(          
 [Parameter(Mandatory=$true,ValueFromPipeline=$true)]          
 [string]$webUrl,          
 [Parameter(Mandatory=$true)]          
 [string]$DocLibName,          
 [Parameter(Mandatory=$true)]          
 [string]$FilePath,            
 [Parameter(Mandatory=$false)]          
 [string]$FolderName
 )              
        
  try
  {
 
 #region Code for Migration
            
 $spWeb = Get-SPWeb -Identity $webUrl
 
 $List = $spWeb.Lists[$DocLibName]          
 $folder = $List.RootFolder          
 if($FolderName -ne "")
 {
  $folder = $list.RootFolder.SubFolders[$FolderName]
 }
 $FileName = $FilePath.Substring($FilePath.LastIndexOf("\")+1)          
 $File= Get-ChildItem $FilePath  
 $fileExtension = ([System.IO.FileInfo] (Get-Item $File.FullName)).Extension
 [Microsoft.SharePoint.SPFile]$spFile = $spWeb.GetFile($folder.Url + "/" + $docNumber+$fileExtension)          
 $flagConfirm = 'y'          
 if($spFile.Exists -eq $true)          
 {          
 #    $flagConfirm = Read-Host "File $FileName already exists in library $DocLibName, do you    want to upload a new version(y/n)?"          
  return "Document Exist."
 }          
          
 if ($flagConfirm -eq 'y' -or $flagConfirm -eq 'Y')          
 {
  $spWeb.AllowUnsafeUpdates = $true;
  
  $fileStream = ([System.IO.FileInfo] (Get-Item $File.FullName)).OpenRead()
  $fileExtension = ([System.IO.FileInfo] (Get-Item $File.FullName)).Extension
    #Add file          
    write-host -NoNewLine -f yellow "Copying file " $File.Name " to " $folder.ServerRelativeUrl "..."          
    [Microsoft.SharePoint.SPFile]$spFile = $folder.Files.Add($folder.Url + "/" + $docNumber+$fileExtension, [System.IO.Stream]$fileStream, $true)          
    write-host -f Green "...Success!"          
    #Close file stream          
    $fileStream.Close()          
    write-host -NoNewLine -f yellow "Update file properties " $spFile.Name "..."
  
  #Check the whether exists or not in site
  $docContentType = $docContentType   

  if($docContentType -eq $IMS)
  {
   $docContentType = $List.ContentTypes[$docContentType]
   $spFile.Item["ContentTypeId"] = $docContentType.Id;
   $spFile.Item["Content Type"] = $docContentType.Name;
   $spFile.Item["Name"] = $docNumber
   $spFile.Item["Title"] = $docTitle     
   $spFile.Item.Update()          
   write-host -f Green "...Success!"
   $spFile.CheckIn("Checked In By Administrator");
            Write-Host "$($spFile.Name) Checked In" -ForeGroundColor Green
  } 
  
  $spWeb.AllowUnsafeUpdates = $false;
 }
        
          
 return "Uploaded";
 
 #endregion
 
 }
 catch
 {
  Write-Host "File Path : ($inputRowCollection.PSPath) - Error in DocumentsMigration method : "$_.Exception -f Red;
  Write-Output "File Path : ($inputRowCollection.PSPath) - Error in DocumentsMigration method: "$_.Exception >> $ExceptionLogFile
  return "Error while uploading";
 }
}
$webUrl  = "http://contoso.com";  #http://contoso.com Replace with your Site Url

$docLibraryName = "Documents"; ##Documents - Replace with your library name

$docFolderName =  "SharePoint"; ##SharePoint - Replace with Folder name if you have sub folders in Library

$docNumber = "SeachDocument.docx"; ##SeachDocument.docx - Replace with File name which you will have in file share location

try
  {
         
   $inputRowCollection = Get-ChildItem $DocumentsRepositoryPath -Recurse | Where-Object {$_.Name -like $docNumber+ "*"}
   
   if($inputRowCollection.Count -eq 0)
   {
    $row.IsMigrated = "File Missing"
   }
   
   if($inputRowCollection.Count -eq 1)
   {
    $row.IsMigrated = UploadFileInLibrary $webUrl  $docLibraryName $inputRowCollection.PSPath $docFolderName
   }
   elseif($inputRowCollection.Count -ge 1)
   {
    $row.IsMigrated = "Duplicate Documents"
   }
  }          
  catch          
  {
   Write-Host "File Path : ($inputRowCollection.PSPath) - Error ($documentData): "$_.Exception -f Red;
   Write-Output "File Path : ($inputRowCollection.PSPath) - Error ($documentData): "$_.Exception >> $ExceptionLogFile
   $logData = $logData + "`tNA`t" + $_.Exception + "`tFail`tNA"  
  }

#Function to upload Document into SharePoint library
function UploadFileInLibrary          
{
 [CmdletBinding()]          
 Param(          
 [Parameter(Mandatory=$true,ValueFromPipeline=$true)]          
 [string]$webUrl,          
 [Parameter(Mandatory=$true)]          
 [string]$DocLibName,          
 [Parameter(Mandatory=$true)]          
 [string]$FilePath,            
 [Parameter(Mandatory=$false)]          
 [string]$FolderName
 )              
        
  try
  {
 
 #region Code for Migration
            
 $spWeb = Get-SPWeb -Identity $webUrl
 
 $List = $spWeb.Lists[$DocLibName]          
 $folder = $List.RootFolder          
 if($FolderName -ne "")
 {
  $folder = $list.RootFolder.SubFolders[$FolderName]
 }
 $FileName = $FilePath.Substring($FilePath.LastIndexOf("\")+1)          
 $File= Get-ChildItem $FilePath  
 $fileExtension = ([System.IO.FileInfo] (Get-Item $File.FullName)).Extension
 [Microsoft.SharePoint.SPFile]$spFile = $spWeb.GetFile($folder.Url + "/" + $docNumber+$fileExtension)          
 $flagConfirm = 'y'          
 if($spFile.Exists -eq $true)          
 {          
 #    $flagConfirm = Read-Host "File $FileName already exists in library $DocLibName, do you    want to upload a new version(y/n)?"          
  return "Document Exist."
 }          
          
 if ($flagConfirm -eq 'y' -or $flagConfirm -eq 'Y')          
 {
  $spWeb.AllowUnsafeUpdates = $true;
  
  $fileStream = ([System.IO.FileInfo] (Get-Item $File.FullName)).OpenRead()
  $fileExtension = ([System.IO.FileInfo] (Get-Item $File.FullName)).Extension
    #Add file          
    write-host -NoNewLine -f yellow "Copying file " $File.Name " to " $folder.ServerRelativeUrl "..."          
    [Microsoft.SharePoint.SPFile]$spFile = $folder.Files.Add($folder.Url + "/" + $docNumber+$fileExtension, [System.IO.Stream]$fileStream, $true)          
    write-host -f Green "...Success!"          
    #Close file stream          
    $fileStream.Close()          
    write-host -NoNewLine -f yellow "Update file properties " $spFile.Name "..."
  
  #Check the whether exists or not in site
  $docContentType = $docContentType   

  if($docContentType -eq $IMS)
  {
   $docContentType = $List.ContentTypes[$docContentType]
   $spFile.Item["ContentTypeId"] = $docContentType.Id;
   $spFile.Item["Content Type"] = $docContentType.Name;
   $spFile.Item["Name"] = $docNumber
   $spFile.Item["Title"] = $docTitle     
   $spFile.Item.Update()          
   write-host -f Green "...Success!"
   $spFile.CheckIn("Checked In By Administrator");
            Write-Host "$($spFile.Name) Checked In" -ForeGroundColor Green
  } 
  
  $spWeb.AllowUnsafeUpdates = $false;
 }
        
          
 return "Uploaded";
 
 #endregion
 
 }
 catch
 {
  Write-Host "File Path : ($inputRowCollection.PSPath) - Error in DocumentsMigration method : "$_.Exception -f Red;
  Write-Output "File Path : ($inputRowCollection.PSPath) - Error in DocumentsMigration method: "$_.Exception >> $ExceptionLogFile
  return "Error while uploading";
 }
}
added 4904 characters in body
Source Link

Steps to upload files from file share location to sharepoint library with relevant metadata

$webUrl  = "http://contoso.com";  http://contoso.com Replace with your Site Url

$docLibraryName = "Documents"; Documents - Replace with your library name

$docFolderName =  "SharePoint"; SharePoint - Replace with Folder name if you have sub folders in Library

$docNumber = "SeachDocument.docx"; SeachDocument.docx - Replace with File name which you will have in file share location

try
  {
         
   $inputRowCollection = Get-ChildItem $DocumentsRepositoryPath -Recurse | Where-Object {$_.Name -like $docNumber+ "*"}
   
   if($inputRowCollection.Count -eq 0)
   {
    $row.IsMigrated = "File Missing"
   }
   
   if($inputRowCollection.Count -eq 1)
   {
    $row.IsMigrated = UploadFileInLibrary $webUrl  $docLibraryName $inputRowCollection.PSPath $docFolderName
   }
   elseif($inputRowCollection.Count -ge 1)
   {
    $row.IsMigrated = "Duplicate Documents"
   }
  }          
  catch          
  {
   Write-Host "File Path : ($inputRowCollection.PSPath) - Error ($documentData): "$_.Exception -f Red;
   Write-Output "File Path : ($inputRowCollection.PSPath) - Error ($documentData): "$_.Exception >> $ExceptionLogFile
   $logData = $logData + "`tNA`t" + $_.Exception + "`tFail`tNA"  
  }

#Function to upload Document into SharePoint library
function UploadFileInLibrary          
{
 [CmdletBinding()]          
 Param(          
 [Parameter(Mandatory=$true,ValueFromPipeline=$true)]          
 [string]$webUrl,          
 [Parameter(Mandatory=$true)]          
 [string]$DocLibName,          
 [Parameter(Mandatory=$true)]          
 [string]$FilePath,            
 [Parameter(Mandatory=$false)]          
 [string]$FolderName
 )              
        
  try
  {
 
 #region Code for Migration
            
 $spWeb = Get-SPWeb -Identity $webUrl
 
 $List = $spWeb.Lists[$DocLibName]          
 $folder = $List.RootFolder          
 if($FolderName -ne "")
 {
  $folder = $list.RootFolder.SubFolders[$FolderName]
 }
 $FileName = $FilePath.Substring($FilePath.LastIndexOf("\")+1)          
 $File= Get-ChildItem $FilePath  
 $fileExtension = ([System.IO.FileInfo] (Get-Item $File.FullName)).Extension
 [Microsoft.SharePoint.SPFile]$spFile = $spWeb.GetFile($folder.Url + "/" + $docNumber+$fileExtension)          
 $flagConfirm = 'y'          
 if($spFile.Exists -eq $true)          
 {          
 #    $flagConfirm = Read-Host "File $FileName already exists in library $DocLibName, do you    want to upload a new version(y/n)?"          
  return "Document Exist."
 }          
          
 if ($flagConfirm -eq 'y' -or $flagConfirm -eq 'Y')          
 {
  $spWeb.AllowUnsafeUpdates = $true;
  
  $fileStream = ([System.IO.FileInfo] (Get-Item $File.FullName)).OpenRead()
  $fileExtension = ([System.IO.FileInfo] (Get-Item $File.FullName)).Extension
    #Add file          
    write-host -NoNewLine -f yellow "Copying file " $File.Name " to " $folder.ServerRelativeUrl "..."          
    [Microsoft.SharePoint.SPFile]$spFile = $folder.Files.Add($folder.Url + "/" + $docNumber+$fileExtension, [System.IO.Stream]$fileStream, $true)          
    write-host -f Green "...Success!"          
    #Close file stream          
    $fileStream.Close()          
    write-host -NoNewLine -f yellow "Update file properties " $spFile.Name "..."
  
  #Check the whether exists or not in site
  $docContentType = $docContentType   

  if($docContentType -eq $IMS)
  {
   $docContentType = $List.ContentTypes[$docContentType]
   $spFile.Item["ContentTypeId"] = $docContentType.Id;
   $spFile.Item["Content Type"] = $docContentType.Name;
   $spFile.Item["Name"] = $docNumber
   $spFile.Item["Title"] = $docTitle     
   $spFile.Item.Update()          
   write-host -f Green "...Success!"
   $spFile.CheckIn("Checked In By Administrator");
            Write-Host "$($spFile.Name) Checked In" -ForeGroundColor Green
  } 
  
  $spWeb.AllowUnsafeUpdates = $false;
 }
        
          
 return "Uploaded";
 
 #endregion
 
 }
 catch
 {
  Write-Host "File Path : ($inputRowCollection.PSPath) - Error in DocumentsMigration method : "$_.Exception -f Red;
  Write-Output "File Path : ($inputRowCollection.PSPath) - Error in DocumentsMigration method: "$_.Exception >> $ExceptionLogFile
  return "Error while uploading";
 }
}

Steps to upload files from file share location to sharepoint library with relevant metadata

$webUrl  = "http://contoso.com";  http://contoso.com Replace with your Site Url

$docLibraryName = "Documents"; Documents - Replace with your library name

$docFolderName =  "SharePoint"; SharePoint - Replace with Folder name if you have sub folders in Library

$docNumber = "SeachDocument.docx"; SeachDocument.docx - Replace with File name which you will have in file share location

try
  {
         
   $inputRowCollection = Get-ChildItem $DocumentsRepositoryPath -Recurse | Where-Object {$_.Name -like $docNumber+ "*"}
   
   if($inputRowCollection.Count -eq 0)
   {
    $row.IsMigrated = "File Missing"
   }
   
   if($inputRowCollection.Count -eq 1)
   {
    $row.IsMigrated = UploadFileInLibrary $webUrl  $docLibraryName $inputRowCollection.PSPath $docFolderName
   }
   elseif($inputRowCollection.Count -ge 1)
   {
    $row.IsMigrated = "Duplicate Documents"
   }
  }          
  catch          
  {
   Write-Host "File Path : ($inputRowCollection.PSPath) - Error ($documentData): "$_.Exception -f Red;
   Write-Output "File Path : ($inputRowCollection.PSPath) - Error ($documentData): "$_.Exception >> $ExceptionLogFile
   $logData = $logData + "`tNA`t" + $_.Exception + "`tFail`tNA"  
  }

#Function to upload Document into SharePoint library
function UploadFileInLibrary          
{
 [CmdletBinding()]          
 Param(          
 [Parameter(Mandatory=$true,ValueFromPipeline=$true)]          
 [string]$webUrl,          
 [Parameter(Mandatory=$true)]          
 [string]$DocLibName,          
 [Parameter(Mandatory=$true)]          
 [string]$FilePath,            
 [Parameter(Mandatory=$false)]          
 [string]$FolderName
 )              
        
  try
  {
 
 #region Code for Migration
            
 $spWeb = Get-SPWeb -Identity $webUrl
 
 $List = $spWeb.Lists[$DocLibName]          
 $folder = $List.RootFolder          
 if($FolderName -ne "")
 {
  $folder = $list.RootFolder.SubFolders[$FolderName]
 }
 $FileName = $FilePath.Substring($FilePath.LastIndexOf("\")+1)          
 $File= Get-ChildItem $FilePath  
 $fileExtension = ([System.IO.FileInfo] (Get-Item $File.FullName)).Extension
 [Microsoft.SharePoint.SPFile]$spFile = $spWeb.GetFile($folder.Url + "/" + $docNumber+$fileExtension)          
 $flagConfirm = 'y'          
 if($spFile.Exists -eq $true)          
 {          
 #    $flagConfirm = Read-Host "File $FileName already exists in library $DocLibName, do you    want to upload a new version(y/n)?"          
  return "Document Exist."
 }          
          
 if ($flagConfirm -eq 'y' -or $flagConfirm -eq 'Y')          
 {
  $spWeb.AllowUnsafeUpdates = $true;
  
  $fileStream = ([System.IO.FileInfo] (Get-Item $File.FullName)).OpenRead()
  $fileExtension = ([System.IO.FileInfo] (Get-Item $File.FullName)).Extension
    #Add file          
    write-host -NoNewLine -f yellow "Copying file " $File.Name " to " $folder.ServerRelativeUrl "..."          
    [Microsoft.SharePoint.SPFile]$spFile = $folder.Files.Add($folder.Url + "/" + $docNumber+$fileExtension, [System.IO.Stream]$fileStream, $true)          
    write-host -f Green "...Success!"          
    #Close file stream          
    $fileStream.Close()          
    write-host -NoNewLine -f yellow "Update file properties " $spFile.Name "..."
  
  #Check the whether exists or not in site
  $docContentType = $docContentType   

  if($docContentType -eq $IMS)
  {
   $docContentType = $List.ContentTypes[$docContentType]
   $spFile.Item["ContentTypeId"] = $docContentType.Id;
   $spFile.Item["Content Type"] = $docContentType.Name;
   $spFile.Item["Name"] = $docNumber
   $spFile.Item["Title"] = $docTitle     
   $spFile.Item.Update()          
   write-host -f Green "...Success!"
   $spFile.CheckIn("Checked In By Administrator");
            Write-Host "$($spFile.Name) Checked In" -ForeGroundColor Green
  } 
  
  $spWeb.AllowUnsafeUpdates = $false;
 }
        
          
 return "Uploaded";
 
 #endregion
 
 }
 catch
 {
  Write-Host "File Path : ($inputRowCollection.PSPath) - Error in DocumentsMigration method : "$_.Exception -f Red;
  Write-Output "File Path : ($inputRowCollection.PSPath) - Error in DocumentsMigration method: "$_.Exception >> $ExceptionLogFile
  return "Error while uploading";
 }
}
Notice added Needs detailed answers by Robert Lindgren
Source Link

Nice post for Upload files from file share location to sharepoint library or folder inside a library.

http://naga1208.blogspot.in/2015/10/upload-files-to-sharepoint-site-using.html