Auto upload file share documents to SharePoint

Cherry P 21 Reputation points
2023-09-07T14:02:09.5733333+00:00

Hi,

We are using SharePoint server 2019 on-premise. Is there a way to automatically upload files from local drive to SharePoint in a daily basis? I believe we can achieve this with Powershell script and scheduling a task in the Task scheduler.

Can I have more details on this with detailed script and the steps? appreciate your help.

Thanks

SharePoint Server
SharePoint Server
A family of Microsoft on-premises document management and storage systems.
2,247 questions
Windows Server
Windows Server
A family of Microsoft server operating systems that support enterprise-level management, data storage, applications, and communications.
12,261 questions
SharePoint Server Development
SharePoint Server Development
SharePoint Server: A family of Microsoft on-premises document management and storage systems.Development: The process of researching, productizing, and refining new or existing technologies.
1,577 questions
PowerPoint Management
PowerPoint Management
PowerPoint: A family of Microsoft presentation graphics products that offer tools for creating presentations and adding graphic effects like multimedia objects and special effects with text.Management: The act or process of organizing, handling, directing or controlling something.
222 questions
{count} votes

1 answer

Sort by: Most helpful
  1. Yanli Jiang - MSFT 21,691 Reputation points Microsoft Vendor
    2023-09-08T08:52:59.27+00:00

    Hi @Cherry P ,

    According to your description, task scheduler is a Windows-related app, not my field of expertise, so I added a Windows-related tag. Regarding your question, from the perspective of SharePoint, it is completely feasible to upload files from local drive to SharePoint through PowerShell. I can provide the code for you to try, but how to combine it with the Task Scheduler to achieve automatic upload requires a reply from a Windows expert.

    Here is the code:

    Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
      
    #Function to Upload File
    Function Upload-AllFilesFromDir($WebURL, $DocLibName, $FolderPath)
    {
        #Get the Web and List to upload the file
        $web = Get-SPWeb $WebURL
           
        #Get the Target Document Library to upload
        $List = $Web.GetFolder($DocLibName)
      
        #Get the Files from Local Folder
        $Files = Get-ChildItem $FolderPath #You can filter files by: -filter “*.pdf”
     
        #upload the files
        Foreach ($File in $Files)
        {
            #Get the Contents of the file to FileStream
            $stream = (Get-Item $file.FullName).OpenRead()
         
            # Set Metadata Hashtable For the file - OPTIONAL
            $Metadata = @{"Country" = "United States"; "Domain" = "Sales"}
         
            #upload the file             
            $uploaded = $List.Files.Add($File.Name, $stream, $Metadata, $TRUE)
         
            #dispose FileStream Object
            $stream.Dispose()
        }
    }
       
    #call the upload function
    Upload-AllFilesFromDir "https://SharePoint.crescent.com/sites/sitename/" "Shared Documents" "c:\Documents\"
    

    For more details, please refer to:

    https://www.sharepointdiary.com/2012/10/bulk-upload-files-to-sharepoint-using-powershell.html

    And here is a similar post for your reference:

    https://sharepoint.stackexchange.com/questions/208425/powershell-script-to-transfer-files-from-local-folder-to-document-library

    Hope this helps.


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.