PySide QFTP satt bare å laste opp 35-40 bytes

stemmer
19

Når jeg bruker QFTP oss sette kommando for å laste opp en fil det bare laster opp rundt 40 byte av den angitte filen. Jeg fange dataProgress signal og jeg får fremgang, men den totale størrelsen på filen er skrivebeskyttet til å være rundt 40 bytes. Er det noe galt med min kode, eller er det et problem på FTP-serveren side?

Her er min opplastingsfunksjon:

 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

Alright, funnet ut hva jeg trengte å gjøre. Jeg trengte for å lage en QFile Klarte og lese alle bytes fra den filen og deretter sende det til put-kommandoen.

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
Publisert på 16/07/2012 klokken 15:36
bruker
På andre språk...                            


1 svar

stemmer
0

Jeg gjetter at data = os.path.basename(dataname)betyr data er alltid en streng som inneholder navnet på filen. Prøv å endre dette for å være en åpen fileobj ved hjelpdata = open(os.path.basename(dataname), 'rb')

redigere

Ser på PySide.QtNetwork.QFtp.put(data, file[, type=Binary])og PySide.QtNetwork.QFtp.put(dev, file[, type=Binary])- rekkefølgen på argumentene er data / dev deretter filen - så det er feil vei i koden din ...

Svarte 16/07/2012 kl. 17:30
kilden bruker

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