![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(VB.NET) Upload a File to a SharePoint Documents Library using HttpCurlSee more SharePoint Examples
This example shows how to use Chilkat's For more information, see https://learn.microsoft.com/en-us/sharepoint/dev/sp-add-ins/working-with-folders-and-files-with-rest
Dim success As Boolean = False ' This example uploads a local file to the root of a SharePoint ' Documents document library. ' ' The local file: ' ' qa_data/helloChilkat.txt ' ' is uploaded and stored in SharePoint as: ' ' example.txt ' ' The example demonstrates how HttpCurl automatically resolves: ' ' site_name -> site_id ' site_id -> document_library_id ' ' and then uploads the file to the target document library using ' the Microsoft Graph file upload API. success = False ' -------------------------------------------------------------------------------------------------------- ' Before running this example, create an Azure App Registration and grant it ' the Microsoft Graph permissions required to access SharePoint. ' ' The application will authenticate using OAuth2 Client Credentials. ' See: ' How to Create SharePoint App Registration for OAuth 2.0 Client Credentials ' -------------------------------------------------------------------------------------------------------- ' Build a JSON authentication configuration. ' HttpCurl will use this information to automatically obtain OAuth2 access tokens. Dim jsonAuth As New Chilkat.JsonObject ' Enable secret lookup. ' ' Instead of hard-coding sensitive values such as the client ID, ' client secret, and token endpoint, secret specification strings ' are used. Chilkat automatically retrieves the actual values from ' Windows Credential Manager (Windows) or Apple Keychain (macOS). ' ' See: ' Secret Specification Strings jsonAuth.EnableSecrets = True success = jsonAuth.UpdateString("oauth2.client_id","!!sharepoint|oauth2|client_id") If (success = True) Then success = jsonAuth.UpdateString("oauth2.client_secret","!!sharepoint|oauth2|client_secret") End If If (success = True) Then success = jsonAuth.UpdateString("oauth2.token_endpoint","!!sharepoint|oauth2|token_endpoint") End If If (success = False) Then Debug.WriteLine(jsonAuth.LastErrorText) Exit Sub End If ' Request Microsoft Graph permissions that were granted to the application. jsonAuth.UpdateString("oauth2.scope","https://graph.microsoft.com/.default") ' --------------------------------------------------------------------------------------------------- Dim curl As New Chilkat.HttpCurl ' Associate the OAuth2 configuration with HttpCurl. ' ' When the request is executed, Chilkat automatically obtains an access token ' if needed and adds the Authorization: Bearer header to the HTTP request. curl.SetAuth(jsonAuth) ' Define values that are already known. ' ' These variables are referenced in curl commands using ' {{variable_name}} substitution syntax. curl.SetVar("sharepoint_hostname","example.sharepoint.com") curl.SetVar("site_name","test") ' The upload request requires a Microsoft Graph site ID. ' ' Because the application only knows the SharePoint site name, ' define a helper function that can retrieve the site information. curl.AddFunction("getSite","GET https://graph.microsoft.com/v1.0/sites/root:/sites/{{site_name}}") ' Extract the site's ID and store it in the HttpCurl variable named site_id. curl.AddOutput("getSite","id","site_id") ' The upload request also requires the drive ID of the Documents ' document library. ' ' Microsoft Graph refers to document libraries as "drives". curl.AddFunction("getDrives","GET https://graph.microsoft.com/v1.0/sites/{{site_id}}/drives") ' Search the returned drives for the one named "Documents" ' and save its drive ID in the document_library_id variable. curl.AddOutput2("getDrives","value","name","Documents",True,"id","document_library_id") ' This is the target Microsoft Graph request. ' ' PUT /drives/{drive-id}/root:/{filename}:/content ' ' This endpoint uploads a file to a document library. If the target ' file already exists, Microsoft Graph replaces the existing content. ' If the file does not exist, a new file is created. ' ' The --data-binary option uploads the contents of the local file ' exactly as stored on disk. ' ' The uploaded file will be named "example.txt" in the root of the ' Documents document library. Dim curlCommand As String = "curl -X PUT -H ""Content-Type: text/plain; charset=utf-8"" --data-binary @qa_data/helloChilkat.txt ""https://graph.microsoft.com/v1.0/drives/{{document_library_id}}/root:/example.txt:/content""" ' Execute the request. ' ' HttpCurl examines the target request and determines that ' document_library_id is required. ' ' To obtain this value, it automatically builds and executes ' the following dependency chain: ' ' 1) getSite -> site_id ' 2) getDrives -> document_library_id ' 3) upload -> example.txt ' ' The final response returned by DoYourThing is the response ' from the upload request. success = curl.DoYourThing(curlCommand) If (success = False) Then Debug.WriteLine(curl.LastErrorText) Exit Sub End If ' A successful upload can return: ' ' 201 (Created) ' A new file was created. ' ' 200 (OK) ' An existing file was updated or replaced. ' ' Any other status code typically indicates an authentication, ' permission, site lookup, document library lookup, or upload error. Dim statusCode As Integer = curl.StatusCode If ((statusCode <> 201) And (statusCode <> 200)) Then Debug.WriteLine(curl.ResponseBodyStr) Debug.WriteLine("status code = " & statusCode) Exit Sub End If ' The file has been uploaded successfully and is now available ' in the root of the Documents document library as: ' ' example.txt ' Debug.WriteLine("Success.") |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.