ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Communication / FTP functions
  • Erreur de sécurité dans une connexion sécurisée de type FTPS (syntaxe 2)
  • Permissions requises
  • Configuration nécessaire
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
Connecte le poste en cours à un serveur FTP (File Transfer Protocol).
WINDEVWEBDEV - Code ServeurWindowsAndroidWidget Android Les modes de connexion sécurisés disponibles sont les suivants :
  • FTPS : FTP sécurisé selon le protocole SSL avec chiffrement implicite.
  • FTPES : FTP sécurisé selon le protocole SSL avec chiffrement explicite.
  • SFTP : FTP sécurisé par un tunnel SSH.
Nouveauté SaaS
Une nouvelle syntaxe manipulant une variable de type ftpConnexion est disponible à partir de WINDEV Suite SaaS 2025 Update 2.
Pour plus de détails, consultez Utiliser les nouveautés de WINDEV Suite SaaS 2025.
Nouveauté SaaS
// Syntaxe non disponible en PHP
// Connexion du poste en cours au serveur FTP
MaConnexionFTP est une ftpConnexion
MaConnexionFTP.Serveur = "192.54.12.8"
FTPConnecte(MaConnexionFTP)
// Connexion du poste en cours au serveur FTP
ResConnecte = FTPConnecte("192.54.12.8")
Syntaxe
Nouveauté SaaS
PHP Syntaxe non disponible en PHP

Se connecter à un serveur FTP via une variable de type ftpConnexion Masquer les détails

<Résultat> = FTPConnecte(<Connexion FTP>)
<Résultat> : Entier
  • Identifiant de la connexion,
  • 0 lors de la première connexion.
  • -1 en cas d'erreur. Le compte-rendu détaillé de l'erreur est connu grâce à la fonction ErreurInfo utilisée avec la constante errCode ou errMessage.
    En cas d'erreur d'identification, la fonction ErreurInfo utilisée avec la constante errCode renvoie la constante ftpErreurIdentification.
<Connexion FTP> : Variable de type ftpConnexion
Nom de la variable de type ftpConnexion décrivant les caractéristiques de la connexion au serveur FTP.
Attention : Ce type de variable est disponible uniquement à partir de WINDEV Suite SaaS 2025 Update 2.
Pour plus de détails, consultez Utiliser les nouveautés de WINDEV Suite SaaS 2025.

Se connecter à un serveur FTP (paramètres spécifiés dans la syntaxe) Masquer les détails

<Résultat> = FTPConnecte(<Serveur> [, <Nom de l'utilisateur> [, <Mot de passe> [, <Numéro de port> [, <Type de connexion> [, <Durée de non réponse> [, <Clé privée> [, <Mot de passe de la clé>]]]]]]])
<Résultat> : Entier
  • Identifiant de la connexion,
  • 0 lors de la première connexion.
  • -1 en cas d'erreur. Le compte-rendu détaillé de l'erreur est connu grâce à la fonction ErreurInfo utilisée avec la constante errCode ou errMessage.
    En cas d'erreur d'identification, la fonction ErreurInfo utilisée avec la constante errCode renvoie la constante ftpErreurIdentification.
PHP Ce paramètre est de type Variant et correspond à l'identifiant de la connexion ou -1 en cas d'erreur.
<Serveur> : Chaîne de caractères
Nom du serveur FTP (par exemple "ftp.cdrom.com") ou adresse IP du serveur FTP (par exemple "192.54.12.8").
WINDEVWEBDEV - Code ServeurWindowsAndroidWidget Android Ce paramètre permet de définir le protocole utilisé :
  • si le nom du serveur commence par "ftp://", la connexion est en mode non sécurisé.
  • si le nom du serveur commence par "ftps://", la connexion est en mode sécurisé selon le protocole FTPS (FTP sécurisé par SSL avec chiffrement implicite).
  • si le nom du serveur commence par "ftpes://", la connexion est en mode sécurisé selon le protocole FTPES (FTP sécurisé par SSL avec chiffrement explicite).
  • si le nom du serveur commence par "sftp://", la connexion est en mode sécurisé par un tunnel SSH selon le protocole SFTP.
<Nom de l'utilisateur> : Chaîne de caractères optionnelle
  • Nom de l'utilisateur qui tente d'effectuer une connexion nominative (identification de l'utilisateur sur le serveur FTP). Ce paramètre est donné par le responsable du site FTP.
  • Chaîne vide ("") pour effectuer une connexion anonyme.
<Mot de passe> : Chaîne de caractères optionnelle ou Chaîne secrète
Mot de passe de l'utilisateur : permet d'identifier l'utilisateur sur le serveur FTP. Ce paramètre est donné par le responsable du site FTP.
Ce mot de passe correspond :
  • au <Mot de passe> spécifié si ce paramètre est différent d'une chaîne vide (""),
  • à l'adresse email de l'utilisateur si le paramètre <Nom de l'utilisateur> n'est pas spécifié ou est égal à une chaîne vide (""),
  • à une chaîne vide ("") si ce paramètre n'est pas spécifié et si le paramètre <Nom de l'utilisateur> est différent d'une chaîne vide ("").
Remarque : Si le mot de passe contient des caractères spéciaux, il peut être nécessaire de le convertir en UTF8 en utilisant la fonction ChaîneVersUTF8.
Nouveauté 2025
Utilisation de chaînes secrètes : Si vous utilisez le coffre-fort de chaînes secrètes, le type de la chaîne secrète utilisable pour ce paramètre doit être "Chaîne Ansi ou Unicode".
Pour plus de détails sur les chaînes secrètes et l'utilisation du coffre-fort, consultez Coffre-fort de chaînes secrètes.
Nouveauté 2025
AndroidWidget Android Les chaînes secrètes ne sont pas disponibles pour ce paramètre en Android/Android Widget.
<Numéro de port> : Entier optionnel
Numéro de port sur lequel le serveur doit être lancé. Ce paramètre est donné par le responsable du site FTP.
Par défaut :
  • pour une connexion non sécurisée, ce port est le port 21.
  • WINDEVWEBDEV - Code ServeurWindowsAndroidWidget Android pour une connexion sécurisée en mode FTPS, ce port est le port 990.
  • WINDEVWEBDEV - Code ServeurWindowsAndroidWidget Android pour une connexion sécurisée en mode FTPES, ce port est le port 21.
  • WINDEVWEBDEV - Code ServeurWindowsAndroidWidget Android pour une connexion sécurisée en mode SFTP, ce port est le port 22.
<Type de connexion> : Constante optionnelle de type Entier
Type de connexion à effectuer :
ftpModeActif (ou Faux par compatibilité)Connexion active au serveur FTP.
Lors d'un transfert de fichiers, c'est le client qui prend l'initiative du transfert. Ce type de connexion peut être refusé par certains serveurs FTP protégés.
ftpModePassif (ou Vrai par compatibilité)
(Valeur par défaut)
Connexion passive au serveur FTP (mode PASV).
Lors d'un transfert de fichiers, c'est le serveur qui prend l'initiative du transfert. Ce type de connexion permet de franchir certains "firewalls".
Remarque : Si la connexion au serveur est en IPV6, alors la connexion se fera en mode passif étendu (car le mode passif ne supporte pas IPV6).
ftpModePassifEtenduConnexion passive étendue au serveur FTP (mode EPSV).
Lors d'un transfert de fichiers, c'est le serveur qui prend l'initiative du transfert. Ce type de connexion permet de franchir certains "firewalls".
Si le serveur ne supporte pas le mode passif étendu (la commande FEAT est envoyée au serveur pour connaître la capacité), la connexion est dégradée en mode passif simple.
Limitations :
  • Ce mode n'est pas supporté lors de l'utilisation du module "wininet" de Windows (voir fonction FTPParamètre) : la connexion est réalisée en mode ftpModePassif.
  • AndroidWidget AndroidJava Constante non disponible.
  • PHP Cette constante est identique à la constante ftpModePassif.
ftpModePassifIgnoreIPConnexion passive au serveur FTP (mode PASV).
Lors d'un transfert de fichiers en mode passif le serveur donne le port et l'adresse IP pour le transfert des données. Avec ce paramètre, seul le port est pris en compte, l'adresse IP est ignorée.
Ce type de connexion permet d'utiliser des serveurs FTP qui retournent des adresses IP non routables mais qui sont joignables par l'adresse IP de connexion
Limitations :
  • Ce mode n'est pas supporté lors de l'utilisation du module "wininet" de Windows (voir fonction FTPParamètre) : la connexion est réalisée en mode ftpModePassif.
  • AndroidWidget AndroidPHP Constante non disponible.
<Durée de non réponse> : Entier optionnel ou Durée optionnelle
Nombre de secondes au bout desquelles la requête de connexion au serveur FTP est abandonnée (par défaut 20). Ce délai s'applique à toutes les opérations FTP réalisées sur cette connexion. Si aucune réponse du serveur n'est obtenue dans le délai spécifié, la fonction FTPConnecte retourne -1.
Remarque : Ce paramètre peut correspondre à :
  • un entier correspondant au nombre de secondes,
  • une variable de type Durée,
  • l'indication directe de la durée (par exemple '1s').
PHP Ce paramètre correspond à un entier.
<Clé privée> : Chaîne de caractères optionnelle
WINDEVWEBDEV - Code ServeurWindowsAndroidWidget Android Nom et chemin du fichier correspondant à la clé privée utilisée lors d'une connexion en mode SFTP. Ce fichier doit avoir été généré au format OpenSSH.
Si ce paramètre n'est pas spécifié, la connexion sécurisée utilise une authentification par <Nom de l'utilisateur> / <Mot de passe>.
<Mot de passe de la clé> : Chaîne de caractères ANSI optionnelle ou Chaîne secrète
WINDEVWEBDEV - Code ServeurWindowsAndroidWidget Android Mot de passe du fichier contenant la clé privé utilisée lors d'une connexion en mode SFTP.
Si l'utilisation des chaînes en exécution est en Unicode (onglet "Unicode" de la configuration courante), le mot de passe ne doit pas être donné entre guillemets. Il doit être contenu dans une variable de type chaîne déclarée en ANSI.
Si ce paramètre n'est pas spécifié, la connexion sécurisée utilise une authentification par <Nom de l'utilisateur> / <Mot de passe>.
Nouveauté 2025
Utilisation de chaînes secrètes : Si vous utilisez le coffre-fort de chaînes secrètes, le type de la chaîne secrète utilisable pour ce paramètre doit être "Chaîne Ansi ou Unicode".
Pour plus de détails sur les chaînes secrètes et l'utilisation du coffre-fort, consultez Coffre-fort de chaînes secrètes.
Nouveauté 2025
AndroidWidget Android Les chaînes secrètes ne sont pas disponibles pour ce paramètre en Android/Android Widget.
Remarques
WINDEVWEBDEV - Code ServeurWindowsLinux

Erreur de sécurité dans une connexion sécurisée de type FTPS (syntaxe 2)

Lors d'une connexion sécurisée, certaines erreurs de sécurité peuvent faire échouer la fonction :
  • certificat invalide ou ne provenant pas d'une société connue.
  • nom du site figurant dans le certificat ne correspondant pas à un serveur.
  • date du certificat non-valide ou expirée.
Il est possible de se connecter en ignorant ces erreurs. Pour cela, il suffit d'utiliser la variable FTP.IgnoreErreur :
Valeur de FTP.IgnoreErreur
(ces valeurs peuvent être combinées)
Description
ftpIgnoreCertificatInvalideLe certificat est ignoré.
ftpIgnoreCertificatExpiréLa date du certificat est ignorée.
ftpIgnoreNomCertificatInvalideLe nom du site figurant dans le certificat est ignoré.
ftpIgnoreDépréciéIgnore les erreurs en lien avec l'utilisation d'algorithmes dépréciés (exemple : signature de certificat en SHA-1).
ftpIgnoreRenégociationNonSecuriséeIgnore l'erreur stipulant que le serveur ne supporte pas la renégociation sécurisée (RFC 5746).
ftpIgnoreRévocationLa révocation du certificat est ignorée.
// Exemple de gestion des erreurs
xnum est un entier
FTP.IgnoreErreur = ftpIgnoreCertificatExpiré + ftpIgnoreCertificatInvalide + ...
	ftpIgnoreNomCertificatInvalide + ftpIgnoreRévocation
xnum = FTPConnecte("ftpes://Mon_Ip_Server", "Mon_User", "Mon_Password", 21, Vrai)
SI xnum =-1 ALORS
       Info(ErreurInfo(errMessage))
SINON
       Info("OK")
FIN
AndroidWidget Android

Permissions requises

L'utilisation de cette fonction entraîne la modification des permissions requises par l'application.
Permission requise : INTERNET
Cette permission autorise l'application à ouvrir des sockets réseau.
PHP

Configuration nécessaire

En PHP, il est nécessaire d'activer le module ftp.
Pour activer si nécessaire cette librairie en local, le fichier PHP.INI présent dans le répertoire Windows doit avoir la ligne "extension=php_ftp.dll".
Liste des exemples associés :
Les fonctions FTP Exemples unitaires (WEBDEV) : Les fonctions FTP
[ + ] Utilisation des principales fonctions FTP de WEBDEV pour :
- Se connecter à un serveur FTP
- Lister les fichiers et les répertoires présents sur le serveur FTP
- Récupérer des fichiers présents sur le serveur FTP
- Se déconnecter d'un serveur FTP
WD Transfert de fichiers par FTP Exemples complets (WINDEV) : WD Transfert de fichiers par FTP
[ + ] WD Transfert de fichiers par FTP

Cet exemple est un client FTP complet vous permettant de mémoriser plusieurs serveurs FTP. Vous pouvez alors effectuer des transferts multi-fichiers du poste local vers le serveur ou du serveur FTP vers le poste local. On utilise pour cela les fonctions standards du WLangage (FTPConnecte, etc...)
Classification Métier / UI : Code métier
Composante : wd300com.dll
Minimum version required
  • Version 9
Comments
Click [Add] to post a comment

Last update: 06/11/2025

Send a report | Local help