Cześć mam pewien problem, w swoim programie pobieram plik z serwera ftp, robię to w ten sposób :
QFtp* ftp = new QFtp(this);
ftp->setTransferMode(QFtp::Active);
QFile* filez = new QFile("x.txt", ftp);
filez->open(QIODevice::WriteOnly | QIODevice::Text);
connect(ftp, SIGNAL(commandStarted(int)),
this, SLOT(printStarted(int)));
connect(ftp, SIGNAL(commandFinished(int,bool)),
this, SLOT(printFinished(int,bool)));
connect(ftp, SIGNAL(stateChanged(int)),
this, SLOT(printStatus(int)));
connect(ftp, SIGNAL(done(bool)),
ftp, SLOT(deleteLater()));
ftp->connectToHost("serwer.ftp", 21);
ftp->login("login", "haslo");
ftp->get("x.txt",filez);
ftp->close();
Jeżeli to ważne to podaje też funkcje z "connectów": http://wklej.to/H8dFE
Bez problemów pobierają się pliki "małe" tzn. mające kilka kb pliki tekstowe.
Sytuacja zmienia się gdy chcę ściągnąć plik większy albo bardziej skomplikowany np.
-plik 9mb o rozszerzeniu .rar - archiwum rar nie pobiera się całe, tylko część, co za tym idzie, pliku nie da się rozpakować
-plik mający ok 400kb .jpg - zlepek pikseli, nie ma nic wspólnego z zdjęciem na serwerze
-plik .exe mający ok. 400kb - nie chce się odpalić
może ktoś ma pomysł dlaczego tak się dzieje?
z góry dzięki za odpowiedz :)
edit:
jeśli chodzi o to jak pobieram te pliki to robię to w identyczny sposób jak z txt tylko że zamieniam nazwę z x.txt na x.rar, x.jpg, x.exe
przykład:
QFtp* ftp = new QFtp(this);
ftp->setTransferMode(QFtp::Active);
QFile* filez = new QFile("x.exe", ftp);
filez->open(QIODevice::WriteOnly | QIODevice::Text);
connect(ftp, SIGNAL(commandStarted(int)),
this, SLOT(printStarted(int)));
connect(ftp, SIGNAL(commandFinished(int,bool)),
this, SLOT(printFinished(int,bool)));
connect(ftp, SIGNAL(stateChanged(int)),
this, SLOT(printStatus(int)));
connect(ftp, SIGNAL(done(bool)),
ftp, SLOT(deleteLater()));
ftp->connectToHost("serwer.ftp", 21);
ftp->login("login", "haslo");
ftp->get("x.exe",filez);
ftp->close();