PySide reúnan las condiciones establecidas puso solamente la posibilidad de subir 35-40 bytes

votos
19

Cuando uso de comandos reúnan las condiciones establecidas a poner a cargar un archivo que sólo subirá alrededor de 40 bytes del archivo especificado. Estoy agarrar la señal dataProgress y yo estoy haciendo el progreso, pero el tamaño total del archivo es de sólo lectura en alrededor de 40 bytes. ¿Hay algo malo en mi código, o se trata de un problema en el lado del servidor FTP?

Aquí está mi función de carga:

 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

Muy bien, di cuenta de lo que tenía que hacer. Necesitaba crear un QFile y leer todos los bytes de ese archivo y luego pasar a que el comando put.

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
Publicado el 16/07/2012 a las 16:36
por usuario
En otros idiomas...                            


1 respuestas

votos
0

Supongo que data = os.path.basename(dataname)significa que los datos siempre es una cadena que contiene el nombre del archivo. Trate de cambiar esto es una fileobj abierta mediante el uso dedata = open(os.path.basename(dataname), 'rb')

editar

Mirando PySide.QtNetwork.QFtp.put(data, file[, type=Binary])y PySide.QtNetwork.QFtp.put(dev, file[, type=Binary])- el orden de los argumentos es datos de / dev y luego presentar - por lo que es al revés en su código ...

Respondida el 16/07/2012 a las 18:30
fuente por usuario

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