DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Nouveauté WINDEV 28 !
  • Ce que vous allez apprendre dans cette leçon
  • Présentation
  • Se connecter à un serveur FTP
  • Envoyer un fichier
  • Lister les fichiers présents sur un serveur FTP
  • Récupérer un fichier
  • Se déconnecter d'un serveur FTP
Leçon 7.8. Le FTP
Ce que vous allez apprendre dans cette leçon
  • Présentation des fonctions FTP de WINDEV.
Durée de la leçon

Durée estimée : 20 mn
Leçon précédenteSommaireLeçon suivante
Présentation
Le FTP (File Transfert Protocol) est un protocole standard permettant d'effectuer le transfert de fichiers d'une machine vers une autre machine. Une des deux machines doit être un serveur FTP.
Le WLangage possède les commandes de programmation nécessaires pour effectuer des transferts de fichiers en utilisant ce protocole avec un serveur. Ces fonctions de programmation commencent toutes par "FTP".
WINDEV ne propose que des fonctions "clientes" pour le FTP. Il est nécessaire d'utiliser un serveur FTP standard.
Nous avons choisi de vous présenter un cas réel de la manipulation des fichiers sur un serveur FTP grâce à l'exemple unitaire "Les fonctions FTP".

  • Ouvrez l'exemple unitaire "Les fonctions FTP". Cet exemple présente les principales fonctionnalités utilisables sur un serveur FTP.
Se connecter à un serveur FTP
La fonction FTPConnecte permet de se connecter à un serveur FTP. Vous devez au préalable posséder un compte FTP (nom d'utilisateur et mot de passe) pour accéder à un serveur FTP.
  • Dans la fenêtre "FEN_FTP", affichez les événements WLangage associés au champ Bouton "Connexion" :
    1. Sélectionnez le champ Bouton "Connexion".
    2. Utilisez la touche F2 pour afficher le code WLangage associé :
      // 1 - Adresse FTP : correspond au site FTP
      // où l'application doit se connecter. Ex : 192.108.10.2
      sAdresseFTP est une chaîne = SAI_Serveur_FTP
      // 2 - Nom d'utilisateur : si ce nom n'est pas indiqué,
      // une connexion de type "anonyme" sera utilisée
      sNomUtilisateur est une chaîne = SAI_Utilisateur
      sMDPUtilisateur est une chaîne = SAI_Mot_de_passe
      // Connexion au serveur FTP
      gnIdConnexion = FTPConnecte(sAdresseFTP, sNomUtilisateur, sMDPUtilisateur)
      SI ErreurDétectée ALORS
      // Une erreur a été rencontrée lors de la connexion
      Erreur("La connexion au serveur FTP : " + sAdresseFTP + " a échoué", ErreurInfo())
      RETOUR
      FIN
      // La connexion est établie
      Info("La connexion au serveur FTP est établie", "identifiant de connexion : " + gnIdConnexion)
Remarque : Il est également possible de préciser le numéro de port de connexion du serveur FTP (par défaut "21") ainsi que le mode de connexion ("Vrai" pour une connexion dite "passive", "Faux" pour une connexion dite "active").
Pour plus de détails, consultez Fonctions FTP Standard.
Envoyer un fichier
Pour envoyer un fichier vers un serveur FTP, il suffit d'utiliser la fonction FTPEnvoie.
Voici un exemple de code pouvant être utilisé :
// Lors de la connexion au serveur avec FTPConnecte, nous avons
// récupéré le numéro de connexion dans la variable gnIdConnexion
// Transfert du fichier "C:\MesDocuments\Fichier.DOC" vers
// le répertoire "Temp" qui se trouve sur le serveur.
bResult est un booléen = FTPEnvoie(gnIdConnexion, "C:\MesDocuments\Fichier.DOC", "/Temp")

Attention !

Faites très attention à la casse (minuscules, majuscules) du nom des répertoires sur le serveur. En effet, certains serveurs FTP sont des machines fonctionnant sous UNIX et sont "case-sensitive", c'est-à-dire qu'ils sont sensibles à la casse du nom des fichiers et des répertoires.
Par exemple, sur le serveur FTP se trouve un répertoire nommé "MonRepertoire". Si vous tentez d'accéder au répertoire "monrepertoire", le serveur FTP pourra renvoyer une erreur du type "Chemin inexistant" car la casse utilisée n'est pas correcte.
Lister les fichiers présents sur un serveur FTP
La fonction FTPListeFichier permet de lister les fichiers présents sur un serveur FTP. Cette fonction utilise une procédure de type "callback". Pour chaque fichier ou répertoire trouvé, la procédure est exécutée.
  • Dans la fenêtre "FEN_FTP", affichez les événements WLangage du premier champ Bouton "Lister" :
    1. Sélectionnez le champ Bouton "Lister".
    2. Utilisez la touche F2 pour afficher le code WLangage associé :
      FTPListeFichier(gnIdConnexion,"*.*", CallBackFTPListeFichier, ftpFichier+ftpRépertoire)
       
      // Vérification de l'exécution de la fonction
      SI ErreurDétectée ALORS
      Erreur("Erreur lors du parcours des fichiers présents sur le serveur FTP", ErreurInfo())
      RETOUR
      FIN
    3. Dans l'exemple, la procédure appelée CallBackFTPListeFichier est une procédure interne qui permet d'afficher dans une fenêtre de trace les fichiers trouvés.
      PROCÉDURE INTERNE CallBackFTPListeFichier(sNomFichier, nTailleFichier <utile>, ...
      sAttribut, sDateModif <utile>, sHeureModif <utile>)
       
      // Est-ce un fichier ou un répertoire
      SI sAttribut = "D" ALORS
      // Répertoire ou sous-répertoire
      Trace("Répertoire : " + sNomFichier)
      SINON
      // Fichier
      Trace("Fichier : " + sNomFichier)
      FIN
       
      // Poursuite du parcours des fichiers
      RENVOYER Vrai
Récupérer un fichier
Pour récupérer un fichier depuis un serveur FTP sur votre machine, il suffit d'utiliser la fonction FTPRécupère.
Voici un exemple de code pouvant être utilisé :
// Lors de la connexion au serveur avec FTPConnecte, nous avons
// récupéré le numéro de connexion dans la variable gnIdConnexion
// Récupération du fichier "/Document/Fichier.DOC" présent
// sur le serveur FTP vers le répertoire "D:\Temp" sur
// le poste en cours
bRes est un booléen = FTPRécupère(gnIdConnexion, "/Document/Fichier.DOC", "D:\Temp")
Se déconnecter d'un serveur FTP
Pour se déconnecter d'un serveur FTP, utilisez la fonction FTPDéconnecte.
  • Dans la fenêtre "FEN_FTP", affichez les événements WLangage associés au champ Bouton "Déconnexion" :
    1. Sélectionnez le champ Bouton "Déconnexion".
    2. Utilisez la touche F2 pour afficher le code WLangage associé :
      SI OuiNon(Non, "Voulez-vous fermer la connexion au serveur FTP ?") = Oui ALORS
      // Déconnexion du serveur FTP
      FTPDéconnecte(gnIdConnexion)
      SI ErreurDétectée ALORS
      // Erreur lors de la fermeture de la connexion
      Erreur("Impossible de fermer la connexion FTP", ErreurInfo())
      RETOUR
      FIN
       
      // La connexion est terminée
      Info("La connexion avec le serveur FTP est terminée")
      FIN
Il existe également d'autres fonctions FTP que nous ne détaillerons pas dans ce cours. Elles permettent notamment de :
  • créer, supprimer, modifier des répertoires sur le serveur FTP,
  • créer, supprimer, modifier des fichiers sur le serveur FTP,
  • récupérer les informations d'un répertoire et/ou d'un fichier,
  • ...
Pour plus de détails, consultez Fonctions FTP Standard.
Leçon précédenteSommaireLeçon suivante
Version minimum requise
  • Version 28
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire