QFtp - duże pliki i pliki "złożone"

2011-10-09 13:43
0

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();
edytowany 1x, ostatnio: PoziomeQ, 2011-10-09 13:47

Pozostało 580 znaków

2011-10-09 14:19

w 2 przypadku to mi się nie podoba

filez->open(QIODevice::WriteOnly | QIODevice::Text);

albowiem otwierasz Bracie plik binarny jako tekstowy.


"Sugeruję wyobrazić sobie Słońce widziane z orbity Merkurego, a następnie dupę tej wielkości. W takiej właśnie dupie specjalista ma teksty o wspaniałej atmosferze, pracy pełnej wyzwań i tworzeniu innowacyjnych rozwiązań. Pracuje się po to, żeby zarabiać, a z resztą specjalista sobie poradzi we własnym zakresie, nawet jeśli firma mieści się w okopie na granicy obu Korei."
-somekind,
konkretny człowiek-konkretny przekaz :]
jesteś zajebisty ;* - PoziomeQ 2011-10-09 14:50

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0