Pyside QFTP sadece 35-40 bayt yükleyerek koymak

oy
19

Ben kullandığınızda QFTP en yalnızca belirtilen dosyanın yaklaşık 40 bayt yükleyen bir dosya yüklemek komutu koydu. Ben dataProgress sinyalini yakalamak ve ben ilerleme alıyorum ama dosyanın toplam boyutu sadece 40 byte olarak okunur. şey benim koduyla yanlış var mı, yoksa FTP sunucu tarafında bir sorundur?

İşte Yüklemem fonksiyonudur:

 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

Tamam, yapmak için gerekli anladım. Bir QFile oluşturabilir ve bu dosyadan bayt okuma ve ardından koymak komutuna o geçmesi gerekiyordu.

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
Oluştur 16/07/2012 saat 16:36
kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
0

Bunu tahmin ediyorum data = os.path.basename(dataname)veriler her zaman dosyasının adını içeren bir dize olduğu anlamına gelir. Kullanarak bu açık fileobj olmaya değiştirmeyi deneyindata = open(os.path.basename(dataname), 'rb')

Düzenle

Baktığımızda PySide.QtNetwork.QFtp.put(data, file[, type=Binary])ve PySide.QtNetwork.QFtp.put(dev, file[, type=Binary])- argümanları sırasıdır veri / dev sonra dosya - bu yüzden kodunuzu etrafında yanlış taraf ...

Cevap 16/07/2012 saat 18:30
kaynak kullanıcı

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