Forum Discussion
farhan faiz
Jan 30, 2017Copper Contributor
SharePoint Online - Upload document using PowerShell / CSOM
I am trying to upload document to SharePoint Online using PowerShell / CSOM. Issue is that I don't have file on local drive. I have URL of a file which I download as $wc = New-Object System.Net.Web...
- Jan 31, 2017
Please check the below modified script, which generates the byte array from the given URL and upload it to the SPO.
$wc = New-Object System.Net.WebClient # update with correct path $ByteArray = $wc.downloaddata("http://downloads.microsoft.com/download/file.exe") #Specify tenant admin and site URL and including DLL $User = "XXXXX@XXXXXXX" $Password = 'XXXXXX' | ConvertTo-SecureString -AsPlainText -Force $SiteURL = "XXXXXXXXXXX" $DocLibName = "Documents" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" #Bind to site collection $Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL) $Creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($User,$Password) $Context.Credentials = $Creds $List = $Context.Web.Lists.GetByTitle($DocLibName) $Context.Load($List) $Context.ExecuteQuery() #Upload File $s =[System.IO.MemoryStream]($ByteArray) $FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation $FileCreationInfo.Overwrite = $true $FileCreationInfo.ContentStream = $s $FileCreationInfo.URL = $UniqueFileName $Upload = $List.RootFolder.Files.Add($FileCreationInfo) $Context.Load($Upload) $Context.ExecuteQuery()
ozkary
Dec 07, 2017MVP
For those looking help on uploading files via PowerShell. I was able to do that using the information from the link below: The approach reads files from a drive and uploads them to the site using Invoke-WebRequest. This is a different from the original question, but I hope it helps.
#upload the file to the server using default credentials from the
#current session
$result = Invoke-WebRequest -Uri $url -InFile $filePath -Method PUT
-UseDefaultCredentials
http://www.ozkary.com/2017/09/powershell-upload-multiple-files-sharepoint.html
#upload the file to the server using default credentials from the
#current session
$result = Invoke-WebRequest -Uri $url -InFile $filePath -Method PUT
-UseDefaultCredentials
http://www.ozkary.com/2017/09/powershell-upload-multiple-files-sharepoint.html