PySide QFTP只上传3540字节

2024-06-16 18:55:35 发布

您现在位置:Python中文网/ 问答频道 /正文

当我使用QFTP的put命令上载文件时,它只上载指定文件的大约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并从该文件读取所有字节,然后将其传递给put命令。在

^{2}$

Tags: 文件text命令selfdata字节putfilename
1条回答
网友
1楼 · 发布于 2024-06-16 18:55:35

我猜data = os.path.basename(dataname)意味着数据总是包含文件名的字符串。尝试使用data = open(os.path.basename(dataname), 'rb')将其更改为打开的fileobj

编辑

看看PySide.QtNetwork.QFtp.put(data, file[, type=Binary])PySide.QtNetwork.QFtp.put(dev, file[, type=Binary])-参数的顺序是数据/dev然后是文件-所以在代码中这是错误的。。。在

相关问题 更多 >