Components All New MacOS Windows Linux iOS
Examples Mac & Win Server Client Guides Statistic FMM Blog Deprecated Old

MBS FileMaker Plugin Example Databases

CURL FTP Download all Files in Directory

All examples are included with download of MBS FileMaker Plugin.

CURL FTP Download all Files in Directory.fmp12

Overview
Tables1
Relationships0
Layouts1
Scripts3
Value Lists0
Custom Functions0
Custom Menus33
File Options
Default custom menu set[Standard FileMaker Menus]
When opening file
Minimum allowed version12.0
Login usingAccount Name; Account= Admin
Allow user to save passwordOff
Require iOS passcodeOff
Switch to layoutOff
Hide all toolbarsOff
Script triggers
OnFirstWindowOpenOff
OnLastWindowCloseOff
OnWindowOpenOff
OnWindowCloseOff
OnFileAVPlayerChangeOff
Thumbnail Settings
Generate ThumbnailsOn; Temporary

 

Tables

Table Name
Statistics
Occurrences in Relationship Graph
CURL Test
8 fields defined, 1 record
CURL Test

Fields

Table Name: CURL Test - 8 Fields
Field NameTypeOptionsCommentsOn LayoutsIn RelationshipsIn ScriptsIn Value Lists
ResultNormal, TextAuto-Enter:
  • Allow editing
Validation:
  • Only during data entry
Storage:
  • Repetitions: 1
  • Indexing: None
  • Automatically create indexes as needed
  • Index Language: German
      DestPathNormal, TextAuto-Enter:
      • Allow editing
      Validation:
      • Only during data entry
      Storage:
      • Repetitions: 1
      • Indexing: None
      • Automatically create indexes as needed
      • Index Language: German
          headerNormal, TextAuto-Enter:
          • Allow editing
          Validation:
          • Only during data entry
          Storage:
          • Repetitions: 1
          • Indexing: None
          • Automatically create indexes as needed
          • Index Language: German
                debugNormal, TextAuto-Enter:
                • Allow editing
                Validation:
                • Only during data entry
                Storage:
                • Repetitions: 1
                • Indexing: None
                • Automatically create indexes as needed
                • Index Language: German
                    URLNormal, TextAuto-Enter:
                    • Allow editing
                    Validation:
                    • Only during data entry
                    Storage:
                    • Global
                    • Repetitions: 1
                    • Index Language: German
                        NameNormal, TextAuto-Enter:
                        • Allow editing
                        Validation:
                        • Only during data entry
                        Storage:
                        • Global
                        • Repetitions: 1
                        • Index Language: German
                            PasswordNormal, TextAuto-Enter:
                            • Allow editing
                            Validation:
                            • Only during data entry
                            Storage:
                            • Global
                            • Repetitions: 1
                            • Index Language: German
                                FileNamesNormal, TextAuto-Enter:
                                • Allow editing
                                Validation:
                                • Only during data entry
                                Storage:
                                • Repetitions: 1
                                • Indexing: None
                                • Automatically create indexes as needed
                                • Index Language: German

                                    Layout Objects: CURL Test

                                    Regular Fields

                                    Field Name: CURL Test::Result
                                    Field PropertiesCoordinatesField FormatField BehaviorQuick Find
                                    • Top: 150 pt
                                    • Left: 138 pt
                                    • Bottom: 164 pt
                                    • Right: 391 pt
                                    • Anchoring: Left, Top
                                    Field Format:
                                    • Edit Box
                                    Field Behavior:
                                    • Allow field to be entered: In Find mode, In Browse mode
                                    • Touch keyboard type: System Default
                                    • Go to next field using: Tab key
                                    Yes

                                    Field Name: CURL Test::DestPath
                                    Field PropertiesCoordinatesField FormatField BehaviorQuick Find
                                    • Top: 168 pt
                                    • Left: 138 pt
                                    • Bottom: 182 pt
                                    • Right: 391 pt
                                    • Anchoring: Left, Top
                                    Field Format:
                                    • Edit Box
                                    Field Behavior:
                                    • Allow field to be entered: In Find mode, In Browse mode
                                    • Touch keyboard type: System Default
                                    • Go to next field using: Tab key
                                    Yes

                                    Field Name: CURL Test::URL
                                    Field PropertiesCoordinatesField FormatField BehaviorQuick Find
                                    • Top: 18 pt
                                    • Left: 138 pt
                                    • Bottom: 32 pt
                                    • Right: 391 pt
                                    • Anchoring: Left, Top
                                    Field Format:
                                    • Edit Box
                                    Field Behavior:
                                    • Allow field to be entered: In Find mode, In Browse mode
                                    • Touch keyboard type: System Default
                                    • Go to next field using: Tab key
                                    No

                                    Field Name: CURL Test::Name
                                    Field PropertiesCoordinatesField FormatField BehaviorQuick Find
                                    • Top: 36 pt
                                    • Left: 138 pt
                                    • Bottom: 50 pt
                                    • Right: 391 pt
                                    • Anchoring: Left, Top
                                    Field Format:
                                    • Edit Box
                                    Field Behavior:
                                    • Allow field to be entered: In Find mode, In Browse mode
                                    • Touch keyboard type: System Default
                                    • Go to next field using: Tab key
                                    No

                                    Field Name: CURL Test::Password
                                    Field PropertiesCoordinatesField FormatField BehaviorQuick Find
                                    • Top: 54 pt
                                    • Left: 138 pt
                                    • Bottom: 68 pt
                                    • Right: 391 pt
                                    • Anchoring: Left, Top
                                    Field Format:
                                    • Edit Box
                                    Field Behavior:
                                    • Allow field to be entered: In Find mode, In Browse mode
                                    • Touch keyboard type: System Default
                                    • Go to next field using: Tab key
                                    No

                                    Field Name: CURL Test::debug
                                    Field PropertiesCoordinatesField FormatField BehaviorQuick Find
                                    • Top: 348 pt
                                    • Left: 138 pt
                                    • Bottom: 686 pt
                                    • Right: 553 pt
                                    • Anchoring: Left, Top
                                    Field Format:
                                    • Edit Box
                                    Field Behavior:
                                    • Allow field to be entered: In Find mode, In Browse mode
                                    • Touch keyboard type: System Default
                                    • Go to next field using: Tab key
                                    Yes

                                    Field Name: CURL Test::FileNames
                                    Field PropertiesCoordinatesField FormatField BehaviorQuick Find
                                    • Top: 348 pt
                                    • Left: 560 pt
                                    • Bottom: 686 pt
                                    • Right: 934 pt
                                    • Anchoring: Left, Top
                                    Field Format:
                                    • Edit Box
                                    Field Behavior:
                                    • Allow field to be entered: In Find mode, In Browse mode
                                    • Touch keyboard type: Default for Data Type
                                    • Go to next field using: Tab key
                                    Yes

                                    Group Buttons

                                    Button PropertiesCoordinatesScript/Script Step
                                      Type:
                                    • Text: Trace on
                                      Additional Properties:
                                    • Change to hand cursor over button
                                    • Rectangular
                                    • Top: 312 pt
                                    • Left: 414 pt
                                    • Bottom: 337 pt
                                    • Right: 547 pt
                                    • Anchoring: Left, Top
                                    Set Variable [ $result; Value:MBS("Trace") ]

                                    Button PropertiesCoordinatesScript/Script Step
                                      Type:
                                    • Text: Download files by batch
                                      Additional Properties:
                                    • Change to hand cursor over button
                                    • Rectangular
                                    • Top: 182 pt
                                    • Left: 560 pt
                                    • Bottom: 208 pt
                                    • Right: 752 pt
                                    • Anchoring: Left, Top
                                    Perform Script [ “Download Files with Wildcard match” ]

                                    Scripts:


                                    Button PropertiesCoordinatesScript/Script Step
                                      Type:
                                    • Text: Use Desktop folder
                                      Additional Properties:
                                    • Change to hand cursor over button
                                    • Rectangular
                                    • Top: 156 pt
                                    • Left: 414 pt
                                    • Bottom: 182 pt
                                    • Right: 547 pt
                                    • Anchoring: Left, Top
                                    Set Field [ CURL Test::DestPath; MBS("Folders.UserDesktop") ]

                                    Fields:


                                    Button PropertiesCoordinatesScript/Script Step
                                      Type:
                                    • Text: Download files one by one
                                      Additional Properties:
                                    • Change to hand cursor over button
                                    • Rectangular
                                    • Top: 219 pt
                                    • Left: 560 pt
                                    • Bottom: 245 pt
                                    • Right: 752 pt
                                    • Anchoring: Left, Top
                                    Perform Script [ “Download Files one by one” ]

                                    Scripts:


                                    Script Hierarchy

                                    Download Files with Wildcard match
                                    Download Files one by one
                                    Clear

                                    Next Script: [Download Files one by one]
                                    Script NameDownload Files with Wildcard match
                                    Run script with full access privilegesOff
                                    Include In MenuYes
                                    Layouts that use this script
                                    Scripts that use this script
                                      Script Definition
                                      Script Steps
                                      • Set Variable [ $curl; Value:MBS("CURL.New") ]
                                      • #Set URL with wildcard match
                                      • Set Variable [ $result; Value:MBS("CURL.SetOptionURL"; $curl; CURL Test::URL) ]
                                      • #Set folder where to put files
                                      • Set Variable [ $result; Value:MBS("CURL.SetBatchDestinationPath"; $curl; CURL Test::DestPath) ]
                                      • #credentials...
                                      • Set Variable [ $result; Value:MBS("CURL.SetOptionPassword"; $curl; CURL Test::Password) ]
                                      • Set Variable [ $result; Value:MBS("CURL.SetOptionUsername"; $curl; CURL Test::Name) ]
                                      • #enable wildcard match
                                      • Set Variable [ $result; Value:MBS("CURL.SetOptionWildCardMatch"; $curl; 1) ]
                                      • #Require TLS 1.2 for FTP over SSL. Disable if you prefer FTP without encryption:
                                      • Set Variable [ $result; Value:MBS( "CURL.SetOptionUseSSL"; $curl; 3 ) ]
                                      • Set Variable [ $result; Value:MBS( "CURL.SetOptionSSLVersion"; $curl; 6 ) ]
                                      • #download them all
                                      • Set Field [ CURL Test::Result; MBS("CURL.Perform"; $curl) ]
                                      • #check results
                                      • Set Field [ CURL Test::debug; MBS("CURL.GetDebugMessages"; $curl) ]
                                      • Set Field [ CURL Test::FileNames; MBS("CURL.GetBatchFileNames"; $curl) ]
                                      • Set Variable [ $result; Value:MBS("CURL.Release"; $curl) ]
                                      Fields used in this script
                                      Scripts used in this script
                                        Layouts used in this script
                                          Tables used in this script
                                          Table occurrences used by this script
                                          Custom Functions used by this script
                                            Custom menu set used by this script

                                              Previous Script: [Download Files with Wildcard match]Next Script: [Clear]
                                              Script NameDownload Files one by one
                                              Run script with full access privilegesOff
                                              Include In MenuYes
                                              Layouts that use this script
                                              Scripts that use this script
                                                Script Definition
                                                Script Steps
                                                • Set Variable [ $curl; Value:MBS("CURL.New") ]
                                                • #put in URL to folder ending with /
                                                • Set Variable [ $url; Value:CURL Test::URL ]
                                                • If [ Right ( $url; 1 ) = "*" ]
                                                • #remove * if there
                                                • Set Variable [ $url; Value:Left($url; Length($url)-1) ]
                                                • End If
                                                • If [ Right ( $url; 1 ) ≠ "/" ]
                                                • #add / if missing
                                                • Set Variable [ $url; Value:$url & "/" ]
                                                • End If
                                                • Set Variable [ $result; Value:MBS("CURL.SetOptionURL"; $curl; $url) ]
                                                • #credentials...
                                                • Set Variable [ $result; Value:MBS("CURL.SetOptionPassword"; $curl; CURL Test::Password) ]
                                                • Set Variable [ $result; Value:MBS("CURL.SetOptionUsername"; $curl; CURL Test::Name) ]
                                                • #enable wildcard match
                                                • Set Variable [ $result; Value:MBS("CURL.SetOptionDirListOnly"; $curl; 1) ]
                                                • #Require TLS 1.2 for FTP over SSL. Disable if you prefer FTP without encryption:
                                                • Set Variable [ $result; Value:MBS( "CURL.SetOptionUseSSL"; $curl; 3 ) ]
                                                • Set Variable [ $result; Value:MBS( "CURL.SetOptionSSLVersion"; $curl; 6 ) ]
                                                • #download them all
                                                • Set Field [ CURL Test::Result; MBS("CURL.Perform"; $curl) ]
                                                • #check results
                                                • Set Field [ CURL Test::debug; MBS("CURL.GetDebugMessages"; $curl) ]
                                                • Set Field [ CURL Test::FileNames; MBS("CURL.GetResultAsText"; $curl) ]
                                                • Set Variable [ $result; Value:MBS("CURL.SetOptionDirListOnly"; $curl; 0) ]
                                                • Set Variable [ $count; Value:ValueCount ( CURL Test::FileNames ) ]
                                                • If [ $count > 0 ]
                                                • Set Variable [ $index; Value:1 ]
                                                • Loop
                                                • #build URL for current file
                                                • Set Variable [ $filename; Value:GetValue(CURL Test::FileNames; $index) ]
                                                • If [ Left ( $filename; 1 ) ≠ "." ]
                                                • Set Variable [ $result; Value:MBS("CURL.SetOptionURL"; $curl; $url & $filename) ]
                                                • #build path for current file
                                                • Set Variable [ $path; Value:MBS("Path.AddPathComponent"; CURL Test::DestPath; $fileName) ]
                                                • Set Variable [ $r; Value:MBS( "CURL.CreateOutputFile"; $curl; $Path ) ]
                                                • Set Field [ CURL Test::Result; MBS("CURL.Perform"; $curl) ]
                                                • #check results
                                                • Set Field [ CURL Test::debug; MBS("CURL.GetDebugMessages"; $curl) ]
                                                • End If
                                                • #next
                                                • Set Variable [ $index; Value:$index + 1 ]
                                                • Exit Loop If [ $index > $count ]
                                                • End Loop
                                                • End If
                                                • Set Variable [ $result; Value:MBS("CURL.Cleanup"; $curl) ]
                                                Fields used in this script
                                                Scripts used in this script
                                                  Layouts used in this script
                                                    Tables used in this script
                                                    Table occurrences used by this script
                                                    Custom Functions used by this script
                                                      Custom menu set used by this script

                                                        Previous Script: [Download Files one by one]
                                                        Script NameClear
                                                        Run script with full access privilegesOff
                                                        Include In MenuYes
                                                        Layouts that use this script
                                                          Scripts that use this script
                                                            Script Definition
                                                            Script Steps
                                                            • Set Field [ CURL Test::FileNames; "" ]
                                                            • Set Field [ CURL Test::Result; "" ]
                                                            • Set Field [ CURL Test::debug; "" ]
                                                            • Set Field [ CURL Test::header; "" ]
                                                            Fields used in this script
                                                            Scripts used in this script
                                                              Layouts used in this script
                                                                Tables used in this script
                                                                Table occurrences used by this script
                                                                Custom Functions used by this script
                                                                  Custom menu set used by this script

                                                                    Download example: CURL FTP Download all Files in Directory

                                                                    Used functions: