PySide QFTP mis le téléchargement ne octets 35-40

voix
19

Lorsque j'utilise la commande QFTP de mettre à télécharger un fichier, il télécharge seulement 40 octets du fichier spécifié. J'attrapant le signal de dataProgress et je reçois des progrès, mais la taille totale du fichier est en lecture seule à être d'environ 40 octets. Y at-il quelque chose de mal avec mon code, ou est-ce un problème du côté du serveur FTP?

Voici ma fonction de téléchargement:

 def upload(self):
        filename = QFileDialog.getOpenFileName(self, 'Upload File', '.')
        fname = QIODevice(filename[0])
        dataname = filename[0]
        data = os.path.basename(dataname)
        #data = data[data.find(/) + 1:]
        print data
        print fname
        if not self.fileTree.currentItem():
            self.qftp.put(fname, data)
        elif . in self.fileTree.currentItem().text(0):
            self.qftp.put(fname, self.fileTree.currentItem().parent().text(0) + data)
        elif self.fileTree.currentItem().text(0) == /:
            self.qftp.put(fname, data)
        else:
            return

D'accord, compris ce que je devais faire. Je avais besoin de créer un QFile et lire tous les octets de ce fichier et passez ensuite que la commande put.

def upload(self):
    filename = QFileDialog.getOpenFileName(self, 'Upload File', '.')
    data = QFile(filename[0])
    data.open(1)
    qdata = QByteArray(data.readAll())
    file = os.path.basename(filename[0])
    print data
    if not self.fileTree.currentItem():
        self.qftp.put(qdata, file, self.qftp.TransferType())
    elif . in self.fileTree.currentItem().text(0):
        self.qftp.put(qdata, self.fileTree.currentItem().parent().text(0) + file)
    elif self.fileTree.currentItem().text(0) == /:
        self.qftp.put(qdata, file)
    else:
        return
Créé 16/07/2012 à 16:36
utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Je devine que data = os.path.basename(dataname)signifie des données est toujours une chaîne contenant le nom du fichier. Essayez de changer cela soit une fileobj ouverte à l'aidedata = open(os.path.basename(dataname), 'rb')

modifier

En regardant PySide.QtNetwork.QFtp.put(data, file[, type=Binary])et PySide.QtNetwork.QFtp.put(dev, file[, type=Binary])- l'ordre des arguments est des données / dev alors le fichier - il est donc dans le mauvais sens dans votre code ...

Créé 16/07/2012 à 18:30
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more