PySide QFTP egyszerre csak feltölteni 35-40 bájt

szavazat
19

Ha használom QFTP a put parancs segítségével feltölteni egy fájlt, csak tölt mintegy 40 bájt a megadott fájlt. Én elkapta a dataProgress jel, és kapok a haladás, de a teljes mérete a fájl csak olvasható, hogy mintegy 40 bájt. Van valami baj van a kód, vagy ez a probléma az FTP szerveren oldalán?

Itt van a feltöltés funkció:

 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

Rendben, kitalálta, mit kellett tennie. Kellett, hogy hozzon létre egy QFile és olvassa el a bájtok, hogy a fájl, majd át, hogy a put parancs.

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
A kérdést 16/07/2012 16:36
felhasználó
Más nyelveken...                            


1 válasz

szavazat
0

Arra tippelek, hogy data = os.path.basename(dataname)olyan adatok mindig egy karakterlánc, amely tartalmazza a fájl nevét. Próbálja meg módosítani, hogy ez egy nyitott fileobj segítségéveldata = open(os.path.basename(dataname), 'rb')

szerkesztés

Nézzük PySide.QtNetwork.QFtp.put(data, file[, type=Binary])és PySide.QtNetwork.QFtp.put(dev, file[, type=Binary])- a sorrendben érvek adat / dev majd fájlt - így a rossz út körül a kódot ...

Válaszolt 16/07/2012 18:30
a forrás felhasználó

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