Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие _ Закачка по FTP на сервер

Автор: ++Norton++ 20.11.2009, 0:19

Помогите пожалуйста разобраться.
Нужно загрузить содержимое директории на сервер по фтп. Делал так:

    QDir dir;
    QByteArray fln;
    QStringList uploadDir;
    QFtp *session = new QFtp();

    dir.cd("dir/");
    uploadDir = dir.entryList();

    session->connectToHost(m_ui->siteEdit->text(), m_ui->portEdit->text().toInt());
    session->login(m_ui->loginEdit->text(), m_ui->passwordEdit->text());
    session->cd(m_ui->directoryEdit->text());

for(int i=0; i<uploadDir.length(); i++) {

    fln.append(uploadDir.at(i));                                                            
    session->put(fln, uploadDir.at(i), QFtp::Binary);
    m_ui->processMonitor->append("Success "+uploadDir.at(i));
        
}

    session->close();


Компилируется без ошибок, однако ничего на сервер не загружает :(
Что я делаю не так?

Автор: BRE 20.11.2009, 8:59

Цитата(++Norton++ @ 20.11.2009, 0:19) *
Что я делаю не так?

session->close();


Закрываешь только что созданную сессию.

Автор: ++Norton++ 20.11.2009, 10:55

Убрал session->close, но результат тот-же. :(
Такое чувство, что в этом цикле все строки кроме вывода в TextEdit вообще игнорируются (т.к. уж очень быстро они выводятся). Как будто никакого соединения не происходит вовсе.

Автор: BRE 20.11.2009, 11:19

Цитата(++Norton++ @ 20.11.2009, 10:55) *
Убрал session->close, но результат тот-же. :(
Такое чувство, что в этом цикле все строки кроме вывода в TextEdit вообще игнорируются (т.к. уж очень быстро они выводятся). Как будто никакого соединения не происходит вовсе.

Соединение и вся остальная работа проходит в асинхронном режиме, лови сигналы и следи за состоянием сессии. В документации вроде все подробно расписано.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)