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

PyQt Python Discussion :

Connexion à un serveur FTP [QtNetwork]


Sujet :

PyQt Python

  1. #1
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut Connexion à un serveur FTP
    Bonjour,

    Je cherche à me connecter à un serveur et à faire des download et/ou upload avec le module QtNetwork.

    En lisant la doc, j'ai pu taper ces quelques lignes :

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    from PyQt4 import QtNetwork, QtCore
    
    def pyqt_download():
        ftp = QtNetwork.QFtp()
        fichier = QtCore.QFile('myDossier_local/toto1.txt')
        ftp.connectToHost(monserveur, 21)
        ftp.login(login, psw)
        ftp.cd('monDossier_distant')
        ftp.get('toto1.txt', fichier)
    
    def pyqt_remove():
        ftp = QtNetwork.QFtp()
        ftp.connectToHost(monserveur, 21)
        ftp.login(login, psw)
        ftp.remove('toto1.txt')
    
    def pyqt_upload():
        ftp = QtNetwork.QFtp()
        fichier = QtCore.QFile('toto1.txt')
        ftp.connectToHost(monserveur, 21)
        ftp.login(login, psw)
        ftp.cd('monDossier_distant')
        ftp.put(fichier, 'toto1.txt')

    Lors des l’exécution de ces fonctions je n'ai aucune erreur qui se produit, mais je n'ai aussi aucun upload, download ou remove

    Quelqu'un aurait-il des précisions à me donner pour réussir à faire ce que je souhaite?

    D'avance merci

    J


    EDIT:

    Voici un autre petit bout de code, plus simple, juste histoire de voir ce qui se passe... en l’occurrence, ici, rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    import sys
    from PyQt4 import QtCore, QtNetwork
    
    def essai():
        def actionOn():
            print ('Action en cours')
        def actionOff():
            print ('Action finie')
        def stateServer():
            print (ftp.state())
            
        app = QtCore.QCoreApplication(sys.argv)
        ftp = QtNetwork.QFtp()
        ftp.connectToHost(monServeur)
        ftp.login(login, mdp)
        ftp.connect(ftp, QtCore.SIGNAL('QtNetwork.QFtp.stateChanged(int)'), app, QtCore.SLOT('stateServer()'))
        print (ftp.state())
        ftp.mkdir('toto')
        ftp.connect(ftp, QtCore.SIGNAL('QtNetwork.QFtp.commandStarted(int)'), app, QtCore.SLOT('actionOn()'))
        ftp.connect(ftp, QtCore.SIGNAL('QtNetwork.QFtp.commandFinished(int, bol)'), app, QtCore.SLOT('actionOff()'))
        ftp.close()
        
        print (ftp.error())
    
    essai()
    À mon avis je dois faire une belle erreur, mais je vois pas bien où.
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  2. #2
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Voici le code correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    # -*- coding: iso-8859-1 -*-
    #Code pour Python3. Pour Python2 enlever les parenthèse après les print.
     
    import sys
    from PyQt4 import QtGui,  QtNetwork
     
    h = 50
    l = 220
     
    etat = {0:"Aucune connexion",  1:"Résolution du nom en cours",  2:"Tentative de connexion en cours", 
            3:"Connexion établie",  4:"Identification établie", 5:"Déconnexion en cours"}
     
    class Frame(QtGui.QMainWindow):
        def __init__(self, parent=None):
            QtGui.QMainWindow.__init__(self, parent)
            self.resize(l,h)
            self.setFont(QtGui.QFont("Verdana",8))
     
            self.btn = QtGui.QPushButton("Se connecter", self)
            self.btn.move(10, 10)
            self.btn1 = QtGui.QPushButton("Se déconnecter", self)
            self.btn1.move(110, 10)
     
            self.ftp = QtNetwork.QFtp(self)
     
            self.btn.clicked.connect(self.actionCo)    
            self.ftp.stateChanged.connect(self.stateServer)
            self.btn1.clicked.connect(self.actionDeco)        
     
        def actionCo(self):
            if self.ftp.state() != 0:
                print ('Serveur en cours de connexion ou connecté')
            else:
                print ('Début de connexion')
                self.ftp.connectToHost(serveur)
                self.ftp.login(login,mdp)
     
        def actionDeco(self):
            if self.ftp.state() == 0:
                print('Serveur non connecté')
            else:
                self.ftp.close() 
     
        def stateServer(self):
            print (etat[self.ftp.state()])
            print()
     
     
    app = QtGui.QApplication(sys.argv)
    frame = Frame()
    frame.show()
    sys.exit(app.exec_())
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [EdtFTPj] Connexion à un serveur FTP
    Par ensinienne dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 01/03/2013, 14h43
  2. [Débutant] Connexion au serveur FTP
    Par maestroENSI dans le forum C#
    Réponses: 3
    Dernier message: 29/07/2011, 18h24
  3. connexion à mon serveur ftp impossible ?
    Par petitclem dans le forum Distributions
    Réponses: 0
    Dernier message: 28/05/2008, 10h39
  4. pb de connexion à un serveur ftp
    Par mimi51340 dans le forum Débuter avec Java
    Réponses: 16
    Dernier message: 15/05/2008, 08h23
  5. [eSVN+Fedora] Connexion à un serveur ftp distant
    Par lun4t1k dans le forum RedHat / CentOS / Fedora
    Réponses: 0
    Dernier message: 17/10/2007, 23h12

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