IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Téléchargement de fichiers par FTP


Sujet :

WinDev

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Téléchargement de fichiers par FTP
    Bonjour,

    Je commence à explorer les fonctionnalités FTP de Windev. J'ai un petit soucis que ne n'arrive pas à résoudre clairement avec la doc.

    J'ai besoin de vérifier la présence d'un fichier sur un serveur FTP. J'ai trouvé la fonction de récupération d'un fichier, la fonction pour compter le nombre de fichiers mais je ne trouve pas la fonction qui saurait me dire si oui ou non le fichier souhaité est disponible.

    Merci de votre aide
    Les solutions les plus simples sont les plus efficaces

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 96
    Points : 104
    Points
    104
    Par défaut
    si tu fait un FTPTaille(), tu saura par déduction si le fichier existe ou non.

    Cordialement,
    Thierry Balderacchi

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Tu peux simplement lister les fichiers présents avec FTPListeFichier(). Il n'y a qu'une seule contrainte à cette méthode, il faut que tu aies le droit de "Lister". (droit géré sur le serveur FTP)

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Désolé du dérangement
    J'ai trouvé, désolé du dérangement,

    C'est la fonction "FTPListeFichier" si je ne dis pas de bêtise.
    Les solutions les plus simples sont les plus efficaces

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Merci de votre aide
    Les solutions les plus simples sont les plus efficaces

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Maintenant, j'ai un autre problème.

    Le serveur FTP n'est pas à moi, c'est un ami qui me donne accès au sien pour faire des essais.
    Je devrais y trouver un répertoire nommé "laurent" mais windev ne le voit pas.
    Je pense que le répertoire en question n'est pas à la racine.
    Y a t'il un moyen de lister le nom des répertoire d'un serveur FTP ?
    Les solutions les plus simples sont les plus efficaces

  7. #7
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Lis un peu avant de poster...
    Citation Envoyé par aide de FTPListeFichier()
    Liste les fichiers d'un répertoire (et/ou les répertoires) d'un serveur FTP et retourne le nombre de fichiers (et/ou de répertoires) listés.
    Par contre si j'étais toi, avant de tester directement dans Windev, je testerais avec un client existant comme FileZilla.

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Bowen,
    Si je ne m'abuse, la fonction "FTPListefichier" retourne le nombre de répertoires ou fichiers trouvé mais pas leur nom, si ?
    Et moi c'est le nom qui m'importe.

    J'ai suivi ton judicieu conseil concernant Filezilla.
    J'ai bien accès au serveur FTP et le répertoire souhaité est bien présent à la racine.
    Et pourtant, Windev ne le voit pas !?

    Le code que j'utilise pour tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI FTPListeFichier(IDConnexion,"/laurent/","",FTPRépertoire) = 0 ALORS Info("Le répertoire n'est pas localisé")
    La connexion est vérifiée et validée en amont.
    Le nom du répertoire est bon.
    Les solutions les plus simples sont les plus efficaces

  9. #9
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Ok, il y a juste un problème de compréhension.

    C'est très simple :
    FTPListeFichier Liste et renvoie le nombre de fichiers dans un dossier FTP.
    Il est bien capable de lister les fichiers, mais pour ça, il faut utiliser une procédure en CallBack.

    Pour faire ça, il faut lire l'aide de FTPListeFichier, et notamment le paramètre "<nom de la procédure>".
    L'exemple de l'aide est également là pour ça.

    Tu peux donc lister tous les répertoires FTP de la racine, et voir si le tiens est dedans.

    La syntaxe que tu utilises semble pourtant lister les répertoires correspondant à "laurent".
    • Vérifies que tu n'as pas de majuscules différents. les serveurs FTP sont presque tous sensibles à la casse.
    • Enlèves le dernier "/" de ta recherche, je ne suis pas sûr que ça fonctionne comme tu l'as mis.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
       
      SI FTPListeFichier(IDConnexion,"/laurent","",FTPRépertoire) = 0 ALORS Info("Le répertoire n'est pas localisé")

    [EDIT2]
    NB : ton code liste les répertoires de "laurent", donc si le répertoire ne contient pas de répertoire, ça renvoie 0 également.

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Ok,

    J'ai testé sans le / et en vérifiant la casse mais cela ne change rien, la fonction FTPListefichier retourne 0.

    Dans la fonction FTPlistefichier, la procédure est facultative ?
    Les solutions les plus simples sont les plus efficaces

  11. #11
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    J'ai corrigé mon post précédent :
    Tu listes les répertoires de "laurent", et je pense que tu n'en as pas.

    Pour la question suivante, oui la procédure est facultative. La preuve, tu l'as remplacé par une chaine vide dans ton appel.

    Moi je te conseille un truc comme ça:
    Code principal : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SI FTPListeFichier(IDConnexion,"","VerifierDossier",FTPRépertoire) = 0 ALORS
        info("Rép non trouvé")
    FIN
    Code VerifierDossier : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    PROCEDURE VerifierDossier(Nom, nTaille, sAttribut, sDate, sHeure, nParam)
    SI Nom = "laurent" ALORS
        nParam = 1
        RENVOYER Faux    //Arrête la fonction FTPListeFichier
    SINON
        nParam = 0
        RENVOYER Vrai
    FIN

  12. #12
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    je fais un traitement un peu similaire et me suis inspiré de l'exemple de Windev pour le FTP.

    J'ai comme commandes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // On liste le contenu du répertoire en cours (on liste les répertoires)
    FTPListeFichier(gnIdConnexion,sRépertoire+"*.*","ListerRepDistant",FTPRépertoire,NumImage)
     
    // On liste ensuite les fichiers
    FTPListeFichier(gnIdConnexion,sRépertoire+"*.*","ListerFichierDistant",FTPFichier,NumImage)
    les fonctions ListerRepDistant et ListerFichierDistant ne font qu'ajouter dans un champ arbre la liste des répertoires et des fichiers.

    à adapter en fonction des chemins !

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Très juste Bowen, le répertoire "laurent" ne contient aucun sous répertoire.

    Donc la procédure devient nécessaire ?
    Je la déclare en local la procédure ?
    Les solutions les plus simples sont les plus efficaces

  14. #14
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Merci Bowen, j'ai progressé.

    Autre problème...
    J'en suis maintenant à la récupération d'un fichier avec la fonction FTPRecupere.

    Cette fonction me permet d'accéder à une procédure qui permet de suivre l'évolution du chargement. J’imagine que l'on peut y ouvrir une fenêtre d'info avec une barre de progression pour afficher l'évolution du transfert. Mais en fait, je ne vois pas comment programmer cela.
    Les solutions les plus simples sont les plus efficaces

  15. #15
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Si tu ouvres une fenêtre à partir de la procédure Callback, tu vas bloquer le code jusqu'à ce que la fenêtre soit refermée...
    Tu peux par contre gérer une jauge dans la fenêtre qui fait le FTPRecupère().
    Le deuxième exemple de l'aide te montre comment faire.

  16. #16
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    C'est justement par le biais de la fonction FTPRecupère que je souhaite gérer la barre de progression. Mais comment faire cela ? Quelle information utiliser pour mesurer le temps nécessaire au téléchargement, la progression... ?
    Les solutions les plus simples sont les plus efficaces

  17. #17
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Le temps nécessaire : ce n'est pas fourni par la fonction.
    La progression, elle, l'est.
    Il faut faire exactement comme dans le second exemple de PCSoft.
    La fonction FTPRécupère prend le fichier sur le serveur, et le rammène en local.
    La fonction TéléchargementFTP affiche les différentes tailles. Là c'est dans la fonction message, mais tu peux très bien gérer une jauge avec si tu veux.

    Si tu galères encore, montres-moi où tu en es.
    Un petit conseil : tu peux commencer sans mettre de procédure CallBack, et vérifier que ça marche bien. Ensuite seulement gère la procédure.

    Pour une indication sur le temps de téléchargement restant, il faudra par contre gérer toi même.
    ex. : (temps déjà passé / volume reçu) x volume total = temps total.
    Le temps, je n'ai jamais géré, mais c'est une méthode simple.

Discussions similaires

  1. [FTP] Télécharger un fichier par FTP
    Par jerome38000 dans le forum Langage
    Réponses: 5
    Dernier message: 27/05/2011, 15h41
  2. Problème de téléchargement de fichier par FTP
    Par Xalex dans le forum Web & réseau
    Réponses: 3
    Dernier message: 01/09/2008, 17h01
  3. Téléchargement de fichiers par HTTP / FTP
    Par Gladiator dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 07/12/2005, 11h28
  4. Transfert de fichier par ftp
    Par schub1015 dans le forum MFC
    Réponses: 3
    Dernier message: 14/01/2004, 17h53
  5. Réponses: 1
    Dernier message: 19/08/2003, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo