ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Communication / FTP functions
  • Managing the progress of the transfer
  • Timeout
  • Rights of users
  • Relative and absolute path
  • Required permissions
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
Others
Stored procedures
Transfers a file or directory to an FTP server (File Transfer Protocol).
PHP Transfers a file or directory from the server hosting the application to an FTP server.
New in SaaS
A new syntax for manipulating variables of type ftpConnection is available from WINDEV Suite SaaS 2025 - Update 2.
WINDEVReports and QueriesJavaUser code (UMC)
// Connect the current computer to the FTP server
ConnectionNumber = FTPConnect("192.54.12.8")
// Transfer the "C:\MyDocuments\File.DOC" file
// into the "/Temp" directory on the FTP server
ResSend = FTPSend(ConnectionNumber, "C:\MyDocuments\File.DOC", "/Temp")
PHP
// Transfer the "File.DOC" file found in 
// the _WEB directory of the application 
// to the"/Temp" directory on the FTP server
ResSend = FTPSend(ConnectionNumber, fWebDir() + "\File.DOC", "/Temp")
New in SaaS
WINDEVWEBDEV - Server codeReports and QueriesAndroidAndroid Widget JavaUser code (UMC)Ajax
// Syntax not available in PHP
// Connect the current computer to the FTP server
MyFTPConnection is ftpConnection
MyFTPConnection.Server = "192.54.12.8"
FTPConnect(MyFTPConnection)

// Transfer the "C:\MyDocuments\File.DOC" file
// into the "/Temp" directory on the FTP server
ResSend = FTPSend(MyFTPConnection, "C:\MyDocuments\File.DOC", "/Temp")
Syntax
<Result> = FTPSend(<FTP connection> , <File/Directory to transfer> , <Destination file/directory> [, <WLanguage procedure> [, <Transfer mode>]])
<Result>: Boolean
  • True if the transfer was performed,
  • False otherwise. Use ErrorInfo to get the details of the error.
<FTP connection>: Integer or ftpConnection variable
<File/Directory to transfer>: Character string
Name and full or relative path of the file or directory to be transferred. A UNC path can be used. Wildcard characters cannot be used (* or?).
If this parameter corresponds to a directory, all files in the directory are transferred. A directory with the same name is created on the FTP server at the location specified by <Destination file/directory>.
If this parameter corresponds to a file:
  • If <Destination file/directory> is an existing directory on the FTP server, the file to be transferred is copied to the destination directory.
  • If <Destination file/directory> is an existing file on the FTP server, the file to be transferred is copied and renamed.
<Destination file/directory>: Character string
Name and full or relative path of the destination file or directory. This file or directory is located on the FTP server. The different path sections are separated by "slashes" ("/").
  • A full path has the following format: "/<DirectoryName>/<FileName>". The tree structure has the following format: "/<DirectoryName>/<FileName>".
  • A relative path has the following format: "<DirectoryName>/<FileName>". The tree structure has the following format: "/<CurrentServerDirectory>/<DirectoryName>/<FileName>".
<WLanguage procedure>: Procedure name
Name of the procedure automatically called to check the transfer progress.
PHP This parameter is not available.
<Transfer mode>: Optional Integer constant
Transfer mode used:
ftpASCIIModeTransfer in ASCII mode. This mode is used to transfer files between different operating systems, e.g. UNIX to Windows. The file is delivered in the ASCII format used by the receiving system.
ftpBinaryMode
(Default value)
Transfer in binary mode. In this mode, the file received is strictly identical to the file sent.
Remarks
WINDEVWEBDEV - Server codeReports and QueriesAndroidAndroid Widget JavaUser code (UMC)Ajax

Managing the progress of the transfer

FTPSend is a blocking function. No other action can be performed until the current transfer has been completed. To check the progress of the transfer, FTPSend can automatically call the <Procedure name> procedure at regular intervals.
This procedure is declared as follows:
PROCEDURE <Procedure name>(<Total size>, <Transferred size>)
  • <Total size> is an integer representing the total size of the file or directory being transferred.
  • <Transferred size> is an integer representing the number of bytes already transferred.
For example, you can:
  • display a progress bar,
  • determine if the transfer is completed (<Total size> = <Transferred size>).
FTPSend cannot be interrupted until all files have been transferred. To stop the function, use the following line of code in <Procedure name>:
RETURN False
In any other case (to continue), <Procedure name> MUST return True.
An error is generated if no value (neither True nor False) is returned by <Procedure name>.

Timeout

By default, all the FTP functions fail if the FTP server does not respond within 20 seconds. This time can be modified:

Rights of users

Only a user who has read rights on the FTP server can get information about the files or the directories located on an FTP server. In most cases, the read rights are granted to the "anonymous" users.

Relative and absolute path

The notions of relative path and absolute path are very important in an FTP application.
  • A path beginning with a slash is considered an absolute path. This path is relative to the root of the FTP server (server-specific parameter).
    ex: /pub/user/JULIA
  • If the path does not begin with a slash, it is considered a relative path, i.e. the path relative to the current directory. This current directory can be obtained or changed using FTPCurrentDir.
When connecting to an FTP site, the initial directory (the "base directory" of the user) is not necessarily found at the root of the FTP server. Therefore, we recommend that you use relative paths.
AndroidAndroid Widget

Required permissions

This function changes the permissions required by the application.
Required permission: INTERNET
This permission allows the applications to open the network sockets.
Business / UI classification: Business Logic
Component: wd300com.dll
Minimum version required
  • Version 9
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 04/30/2025

Send a report | Local help