DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Fonctions FTP
  • Gestion de la progression de transfert
  • Délai de transfert
  • Droits des utilisateurs
  • Chemin relatif et absolu
  • Serveur FTP de type AS/400
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
FTPRécupèreFichier (Fonction)
En anglais : FTPGetFile
Transfère un fichier d'un serveur FTP (File Transfer Protocol) sur le poste en cours.
Remarque : Cette fonction permet de récupérer uniquement un seul fichier. Ce fichier doit exister sur le serveur FTP. Dans ce cas, la fonction FTPRécupèreFichier est plus rapide que la fonction FTPRécupère.
Exemple
// Récupération du fichier "/Document/Fichier.txt" présent sur le serveur FTP
// dans le répertoire "D:\Temp" sur le poste en cours
ResRécupère = FTPRécupèreFichier(7, "/Document/Fichier.txt", "D:\Temp")
Syntaxe
<Résultat> = FTPRécupèreFichier(<Identifiant de la connexion> , <Fichier à récupérer> , <Fichier/Répertoire destination> [, <Procédure WLangage> [, <Mode de transfert>]])
<Résultat> : Booléen
  • Vrai si le transfert a été effectué,
  • Faux dans le cas contraire. Pour connaître le libellé de l'erreur, utilisez la fonction ErreurInfo avec la constante errMessage.
    Remarque : Le résultat peut être incorrect sur certains serveurs Unix : un fichier existant peut ne pas être trouvé.
<Identifiant de la connexion> : Entier
Identifiant de la connexion, obtenu avec la fonction FTPConnecte.
<Fichier à récupérer> : Chaîne de caractères
Nom et chemin absolu (ou relatif) du fichier à récupérer. Ce fichier est situé sur le serveur FTP. Les parties du chemin sont séparées par des "slash" (barre oblique normale, "/").
Attention : le nom du répertoire est case sensitive. Il faut utiliser la même casse que sur le serveur FTP (majuscules/minuscules).
Il n'est pas possible de donner de caractères joker (* ou ?). Pour récupérer plusieurs fichiers, utilisez préalablement la fonction FTPListeFichier pour avoir le nom des fichiers à récupérer.
Un chemin absolu est du type "</NomRépertoire>/<NomFichier>". L'arborescence obtenue est "/<NomRépertoire>/<NomFichier>".
Un chemin relatif est du type "<NomRépertoire>/<NomFichier>". L'arborescence obtenue est "/<RépertoireCourantServeur>/<NomRépertoire>/<NomFichier>".
Lors de la récupération du fichier :
  • si le paramètre <Fichier/Répertoire destination> est un répertoire existant sur le poste en cours, le fichier à récupérer est copié dans le répertoire destination.
  • si le paramètre <Fichier/Répertoire destination> est un fichier existant sur le poste en cours, le fichier à récupérer est copié et renommé.
<Fichier/Répertoire destination> : Chaîne de caractères
Nom et chemin complet (ou relatif) du fichier (ou du répertoire) destination. Un chemin de type UNC peut être utilisé.
Si ce paramètre correspond à un nom d'un répertoire existant sur le poste client, un fichier du même nom que le fichier à récupérer est créé dans ce répertoire.
<Procédure WLangage> : Nom de procédure
Nom d'une procédure WLangage appelée automatiquement pour contrôler la progression du transfert. Cette procédure peut être une méthode globale de classe (de la forme <Nom Classe>::<NomMéthodeGlobale>).
<Mode de transfert> : Constante optionnelle de type Entier
Mode de transfert réalisé :
ftpModeASCIITransfert réalisé en mode ASCII. Ce mode est utilisé pour un transfert entre deux systèmes d'exploitation différents, par exemple UNIX vers Windows : le fichier transféré est livré dans le format ASCII du système destinataire.
ftpModeBinaire
(Valeur par défaut)
Transfert réalisé en mode binaire. Le fichier est strictement identique entre l'envoi et la réception.
Remarques

Gestion de la progression de transfert

La fonction FTPRécupèreFichier est une fonction bloquante : aucune autre action ne peut être effectuée jusqu'à la fin du transfert en cours.
Pour contrôler la progression du transfert, la fonction FTPRécupèreFichier peut appeler automatiquement une procédure WLangage <Procédure WLangage> à intervalles réguliers (tous les 64 Ko).
Cette procédure est déclarée de la manière suivante :
PROCEDURE <Nom de la procédure> (<Taille totale>, <Taille transférée>)
où :
  • <Taille totale> est un entier correspondant à la taille totale du fichier en cours de transfert.
  • <Taille transférée> est un entier correspondant au nombre d'octets déjà transférés.
Il est possible dans cette procédure :
  • d'afficher une jauge de progression (via un champ Jauge par exemple),
  • de savoir si le transfert est terminé (<Taille totale>=<Taille transférée>).
La fonction FTPRécupèreFichier ne peut pas être interrompue tant que le transfert n'est pas terminé. Pour forcer l'interruption du parcours, il faut utiliser la ligne suivante dans la procédure <Nom de la procédure> :
RENVOYER Faux
Dans les autres cas (pour poursuivre le parcours), la procédure <Nom de la procédure> DOIT renvoyer Vrai.
Si la procédure <Nom de la procédure> ne retourne aucune valeur (ni Vrai, ni Faux), une erreur est générée.

Délai de transfert

Par défaut, toutes les fonctions FTP échouent si aucune réponse du serveur FTP n'est reçue après 20 secondes. Ce délai peut être modifié lors de la connexion au serveur FTP avec la fonction FTPConnecte.

Droits des utilisateurs

La récupération des fichiers présents sur un serveur FTP n'est possible que pour un utilisateur ayant les droits en lecture sur le serveur FTP. En règle générale, les utilisateurs "anonymes" ont les droits en lecture.

Chemin relatif et absolu

Les notions de chemin relatif et de chemin absolu sont très importantes dans une application FTP.
  • Un chemin commençant par un slash est considéré comme un chemin absolu : il s'agit du chemin par rapport à la racine du serveur FTP (paramètre propre au serveur).
    ex: /pub/user/JULIE
  • Si le chemin ne commence pas par un slash, il est considéré comme un chemin relatif, c'est-à-dire le chemin par rapport au répertoire en cours. Ce répertoire en cours peut être connu ou modifié avec la fonction FTPRepEnCours.
Lors de la connexion à un site FTP, le répertoire initial, le "home directory" de l'utilisateur n'est pas forcément la racine du serveur FTP. Il est donc conseillé d'utiliser des chemins relatifs.

Serveur FTP de type AS/400

La fonction FTPRécupèreFichier ne fonctionne pas correctement si le serveur FTP est présent sur un AS/400.
Dans ce cas, il convient d'utiliser la fonction FTPCommande avec la commande FTP "RETR" (pour plus de détails sur les fonctions FTP, consultez la documentation du serveur FTP utilisé).
Composante : wd300com.dll
Version minimum requise
  • Version 25
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale