How to add ftp put function in PyQT network ftp demo

不坏阿峰 onlydebian at gmail.com
Wed Jul 2 04:05:38 EDT 2014


在 2014年7月1日星期二UTC+7下午5时27分59秒,不坏阿峰写道:
> I want to modify the pyqt network ftp demo to include an upload function, but I am failing. Could someone can show me how to do this? I have tried to add this code, but it does not work. 
> 
> [Orignal demo]https://github.com/Werkov/PyQt4/blob/master/examples/network/ftp/ftp.py
> 
> 
> 
> at First, i add these code into demo. not work at all
> 
> ##############
> 
> buttonBox.addButton(self.uploadButton,
> 
>             QtGui.QDialogButtonBox.ActionRole)
> 
> self.uploadButton = QtGui.QPushButton("upload")
> 
> self.uploadButton.clicked.connect(self.selectFile)
> 
> 
> 
> def selectFile(self):
> 
>     self.filename =QtGui.QFileDialog.getOpenFileName()
> 
>     up_fname = re.sub(r".*/","",self.filename)
> 
>     upload_file = QtCore.QFile(self.filename)
> 
>     self.ftp.put(upload_file, up_fname)
> 
> 
> 
> ##############
> 
> 
> 
> Second, i modify like this, i can upload small file successfully, but fail on big size file, the app will crash.
> 
> 
> 
> #####################
> 
>     def selectFile(self):
> 
>         self.filename =QtGui.QFileDialog.getOpenFileName()
> 
>         print self.filename
> 
>         up_fname = re.sub(r".*/","",self.filename)
> 
>         print up_fname
> 
> 
> 
> 
> 
>         upload_file = QtCore.QFile(self.filename)
> 
>         #print upload_file
> 
>         upload_file.open(QtCore.QIODevice.ReadOnly)
> 
>         ba = QtCore.QByteArray()
> 
>         ba.append(upload_file.readAll())
> 
>         
> 
>         #buffer = QtCore.QBuffer()            #### do not how to use Buffer
> 
>         #buffer.open(QtCore.QIODevice.ReadWrite)
> 
>         #buffer.setData(ba)
> 
>         
> 
>         self.ftp.put(ba, up_fname)
> 
>         self.progressDialog.setLabelText("Uploading %s..." % up_fname)
> 
>         self.uploadButton.setEnabled(False)
> 
>         self.progressDialog.exec_()
> 
>         self.uploadButton.setEnabled(True)
> 
>         self.ftp.list()
> 
> 
> 
> ####################

any one can give some suggestion?



More information about the Python-list mailing list