PySide QFTP केवल 35-40 बाइट्स अपलोड करने डाल

वोट
19

जब मैं का उपयोग QFTP के आदेश एक फ़ाइल यह केवल निर्दिष्ट फ़ाइल के लगभग 40 बाइट्स अपलोड करता है अपलोड करने के लिए डाल दिया। मैं dataProgress संकेत पकड़ने कर रहा हूँ और मैं प्रगति हो रही है, लेकिन फ़ाइल का कुल आकार केवल लगभग 40 बाइट्स होने के लिए पढ़ा जाता है। क्या मेरी कोड के साथ गलत है, या FTP सर्वर के पक्ष में एक समस्या है?

यहाँ मेरी अपलोड समारोह है:

 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 बना सकते हैं और उस फ़ाइल से बाइट्स के सभी पढ़ सकते हैं और तब पुट आदेश है कि पारित करने के लिए की जरूरत है।

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
16/07/2012 को 16:36
उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

मेरा अनुमान है कि यह है कि data = os.path.basename(dataname)इसका मतलब है डेटा हमेशा फ़ाइल के नाम वाले एक श्रृंखला है। का उपयोग करके बदल रहा है यह एक खुला fileobj होने के लिए प्रयास करेंdata = open(os.path.basename(dataname), 'rb')

संपादित करें

को देखते हुए PySide.QtNetwork.QFtp.put(data, file[, type=Binary])और PySide.QtNetwork.QFtp.put(dev, file[, type=Binary])- बहस के क्रम है डेटा / dev तो फाइल - तो यह अपने कोड में चारों ओर गलत तरीके से है ...

16/07/2012 को 18:30
का स्रोत उपयोगकर्ता

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