SharePoint Online:使用 PowerShell 将文件上传到子文件夹
要求: SharePoint Online PowerShell 将文件上传到文件夹。
如何将文件上传到 SharePoint Online 中的文件夹?
文件夹仍然是组织文件并将它们全部保存在一个地方的好方法。在这篇博文中,我将向您展示如何使用 PowerShell 将文件上传到 SharePoint Online 网站中的文件夹。如果您需要自动执行将文件上传到 SharePoint 网站的过程,这会很方便。
您可以通过以下方式将文件上传到 SharePoint Online 文档库中的特定文件夹:
- 通过网络浏览器导航至该文件夹
- 单击任何文档库工具栏中的“上传”按钮,选择“文件”,然后浏览计算机以查找本地存储的文件。
- 找到所需的文件,选择它,单击“打开”,然后开始上传。
上传过程完成后,顶部的进度条将达到 100%。
PowerShell 将文件上传到 SharePoint Online 子文件夹
PowerShell 是一种非常强大的语言,可用于自动执行许多 IT 任务。您可能希望使用 PowerShell 自动执行的最常见任务之一是将文件上传到 SharePoint Online 文档库子文件夹。
通常,您可能需要将文件上传到 SharePoint Online,但每次都是相同的过程!那么,让我们使用 PowerShell 来自动化它。以下是将文件上传到 SharePoint Online 文档库子文件夹的 PowerShell:
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
#Set parameter values
$SiteURL="https://crescent.sharepoint.com/sites/marketing"
$SourceFilePath="C:\Users\salaudeen\Desktop\Project Documents\Discloser Asia.doc"
$TargetFolderRelativeURL ="/sites/Marketing/Shared Documents/2018/Active"
#Setup Credentials to connect
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
Try {
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#Get the Target Folder to upload
$Web = $Ctx.Web
$Ctx.Load($Web)
$TargetFolder = $Web.GetFolderByServerRelativeUrl($TargetFolderRelativeURL)
$Ctx.Load($TargetFolder)
$Ctx.ExecuteQuery()
#Get the source file from disk
$FileStream = ([System.IO.FileInfo] (Get-Item $SourceFilePath)).OpenRead()
#Get File Name from source file path
$SourceFileName = Split-path $SourceFilePath -leaf
$TargetFileURL = $TargetFolderRelativeURL+"/"+$SourceFileName
#Upload the File to SharePoint Library Folder
$FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
$FileCreationInfo.Overwrite = $true
$FileCreationInfo.ContentStream = $FileStream
$FileCreationInfo.URL = $TargetFileURL
$FileUploaded = $TargetFolder.Files.Add($FileCreationInfo)
$Ctx.ExecuteQuery()
#Close file stream
$FileStream.Close()
Write-host "File '$TargetFileURL' Uploaded Successfully!" -ForegroundColor Green
}
catch {
write-host "Error Uploading File to Folder: $($_.Exception.Message)" -foregroundcolor Red
}
此 PowerShell 将文件上传到 SharePoint Online 文档库子文件夹。
使用 PnP PowerShell 将文件上传到 SharePoint Online 文件夹
要使用 PnP PowerShell 将文件上传到 SharePoint Online 文档库中的文件夹,请使用:
#Config Variables
$SiteURL = "https://Crescent.sharepoint.com/sites/retail"
$SourceFilePath ="C:\Documents\SRS.Docx"
$DestinationFolderPath = "/sites/retail/Shared Documents/2018" #Server Relative URL
Try {
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Upload File to Folder
Add-PnPFile -Path $SourceFilePath -Folder $DestinationFolderPath -ErrorAction Stop
}
catch {
write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
Add-PnPFile cmdlet 还支持以下参数:NewFileName、Checkout、Approve、Publish、ContentType 和 Values。如果需要使用 PowerShell 将所有文件和文件夹从本地驱动器上传到 SharePoint Online,请使用:SharePoint Online:使用 PowerShell 上传所有文件和子文件夹
