Όταν χρησιμοποιείτε QFTP βάλουμε εντολή για να φορτώσετε ένα αρχείο που ανεβάζει μόνο περίπου 40 bytes του συγκεκριμένου αρχείου. Είμαι πιάσει το σήμα dataProgress και παίρνω την πρόοδο, αλλά το συνολικό μέγεθος του αρχείου είναι μόνο για ανάγνωση για να είναι περίπου 40 bytes. Υπάρχει κάποιο πρόβλημα με κωδικό μου, ή είναι ένα πρόβλημα από την πλευρά του διακομιστή FTP;
Εδώ είναι η λειτουργία upload μου:
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
Εντάξει, κατάλαβα τι έπρεπε να κάνω. Έπρεπε να δημιουργήσουμε ένα QFile και να διαβάσετε όλα τα bytes από το αρχείο και στη συνέχεια να περάσει αυτό με την εντολή πώλησης.
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