qftp ... put mit qbytearray*FIXED*

Alles rund um die Programmierung mit Qt
Antworten
fred4711
Beiträge: 10
Registriert: 12. August 2009 21:40

qftp ... put mit qbytearray*FIXED*

Beitrag von fred4711 »

hallo,
ne kleine aber feine Frage :-)
ich versuche eine zip Datei in ein Qbytearray einzulesen und diese dann mittels qftp->put auf einen FTP Server raufzuladen.
Hier die nötigen Code Schnipsel :-)
QString _comfile = "upload.zip"
...
QFtp *m_Ftp = new QFtp(this);
m_Ftp->connectToHost(host);
m_Ftp->login(user,passws);
m_Ftp->cd("Info");
m_Ftp->cd("upload");

QFile file(_comfile);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
QByteArray buff = file.readAll();
int return = m_Ftp->put(buff, _comfile);
m_Ftp->put(buff,_comfile);

Das Problem was ich habe ist, das die Datei auf dem Server nachher kleiner ist als meine lokale. und ich die auch nicht wirklich öffnen kann. ( wenn ich diese wieder runter geladen habe.

Ich weiß nicht an welcher Stelle ich nach dem Fehler suchen soll.
Kann es sein das ich beim QBytearray noch was besonderes angeben muss ? Bin für jede Hilfe Dankbar.
Zuletzt geändert von fred4711 am 31. August 2009 22:10, insgesamt 1-mal geändert.
Markus
Beiträge: 105
Registriert: 31. Januar 2005 16:21

Beitrag von Markus »

Was liefern denn die Signals "commandFinished" und "done"? Ist der Parameter "error" true oder false?
fred4711
Beiträge: 10
Registriert: 12. August 2009 21:40

Beitrag von fred4711 »

der liefert done und keine Error !
was mich wundert habe mir die Size von buff ausgeben lassen, die ist bereits kleiner als meine eigentliche Datei ...
also FTP scheint seine sachen ganz ordentlich zu machen ! nur das Qbytearray ist schon kleiner als meine Datei. und genau so groß wie die Datei die am schluss auf dem Server liegt !
:-( Hat jemand ne Idee ?
Markus
Beiträge: 105
Registriert: 31. Januar 2005 16:21

Beitrag von Markus »

Hast Du mal versucht eine andere Datei zu nehmen oder das QByteArray in einer andere Datei zu schreiben? Nur um sicher zu gehen, dass das mit dem File-Handling alles klappt oder ob es an der Datei liegt?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Was sind denn die Unterschiede zwischen den beiden Dateien?
fred4711
Beiträge: 10
Registriert: 12. August 2009 21:40

Beitrag von fred4711 »

so habe nun mal eine Datei mittels Tar erzeugt und diese in ein Qbytearray eingeladen und erneut auf die Platte geschrieben ...
Allerdings mit dem gleichen Ergebnis. das Testweise geschriebene File ist in der Größe nicht das gleiche und öffnen kann ich datei nicht wirklich.
Ich weiß an der Stelle nicht weiter. hier habe ich mal 2 Dateien

Hier mal mein Quick und Dirty Hack :-)

QFile file(_comfile);
QFile filesave("testfile.tar.gz");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
if (!filesave.open(QIODevice::WriteOnly | QIODevice::Text))
return;
QByteArray buff = file.readAll();
file.close();
filesave.write(buff);
filesave.close();
Dateianhänge
original.tar.gz
original File
(11.05 KiB) 148-mal heruntergeladen
testfile.tar.gz
das eingelesene und erneut gespeicherte File
(11.07 KiB) 158-mal heruntergeladen
fred4711
Beiträge: 10
Registriert: 12. August 2009 21:40

Beitrag von fred4711 »

Hallo,
habe es selbst gefunden
das
QIODevice::Text
musste bei der Funktion fürs einlesen und abspeichern weg :-)
Antworten