The Pliant FTP clients is implemented has a file systems.
They will be recorded in the file systems list through including module /pliant/protocol/ftp/client.pli
Then accessing the servers is just like accessing a file on you disk: you simply provide the page URL instead of the file path and name.


A sample access to an FTP server (the user name and password are passed as options):

module "/pliant/language/stream.pli"
module "/pliant/protocol/ftp/client.pli"
(gvar Stream s) open "ftp://localhost/index.page" "user [dq]test[dq] password [dq]sesame[dq]" in
while not s:atend
  console s:readline eol

The same sample with the user and password included in the file name:

module "/pliant/language/stream.pli"
module "/pliant/protocol/ftp/client.pli"
(gvar Stream s) open "[dq]ftp://localhost/index.page[dq] user [dq]test[dq] password [dq]sesame[dq]" in
while not s:atend
  console s:readline eol

This is a very general feature (not related to FTP): when a file name needs extra options, you can either provide them as another argument in the 'open' method, or quote the file name, and provide the options directly in the file name argument.

Another sample:

module "/pliant/admin/file.pli"
module "/pliant/protocol/ftp/client.pli"
file_copy "[dq]ftp://localhost/index.page[dq] user [dq]test[dq] password [dq]sesame[dq]" "file:/tmp/index.page"