Wenn ich QFtp der PUT-Befehl, eine Datei hochzuladen es nur uploads um 40 Byte der angegebenen Datei. Ich fange das dataProgress Signal und ich bin immer den Fortschritt, aber die Gesamtgröße der Datei gelesen wird, nur etwa 40 Byte. Gibt es etwas falsch mit meinem Code, oder ist es ein Problem auf der Seite des FTP-Servers?
Hier ist meine Upload-Funktion:
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
In Ordnung, herausgefunden, was ich tun musste. Ich brauchte eine QFile zu erstellen und alle Bytes aus dieser Datei gelesen und dann das Kommando an den Put passieren.
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