Russian Qt Forum
Ноябрь 27, 2024, 15:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: Скачивание файла с http сервера  (Прочитано 21412 раз)
dangreen
Гость
« : Июнь 25, 2011, 16:52 »

Привет всем, искал на форуме "как качать файлы", темы то нашлись но внятного ответа нет...
И все таки: как качать файлы с http сервера средствами Qt ?

  
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Июнь 25, 2011, 17:24 »

попробуй это: http://www.prog.org.ru/index.php?topic=18530.msg124691#msg124691
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
dangreen
Гость
« Ответ #2 : Июнь 25, 2011, 18:45 »

Код:
Undefined symbols for architecture x86_64:
  "QNetworkAccessManager::QNetworkAccessManager(QObject*)", referenced from:
      Downloader::Downloader(QObject*)in downloader.o
  "QNetworkRequest::QNetworkRequest(QUrl const&)", referenced from:
      Downloader::Downloader(QObject*)in downloader.o
  "QNetworkAccessManager::get(QNetworkRequest const&)", referenced from:
      Downloader::Downloader(QObject*)in downloader.o
  "QNetworkRequest::~QNetworkRequest()", referenced from:
      Downloader::Downloader(QObject*)in downloader.o
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Июнь 25, 2011, 19:26 »

QT += network
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
BRE
Гость
« Ответ #4 : Июнь 25, 2011, 19:28 »

В pro файле должен подключаться модуль network:
QT += network

[off]Qt-хэдеры лучше подключать без указания полного пути, тогда ты бы получил ошибку еще на стадии компиляции о том, что такие классы не доступны.[/off]

Для загрузки больших файлов все таки лучше использовать сигнал readyRead для периодического доставания данных из внутренних буферов и сохранения их на диске.
Записан
dangreen
Гость
« Ответ #5 : Июнь 25, 2011, 21:37 »

QT += network

теперь компилируется, но как вызывать эту функцию, потомучто Downloader(this); не работает
и куда будет качаться файл
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #6 : Июнь 25, 2011, 23:22 »

"не работает" в смысле не качает? а ты поменял значение переменной basePath?

в моём примере скачивается в папку приложения в файл file.htm
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
dangreen
Гость
« Ответ #7 : Июнь 26, 2011, 06:19 »

"не работает" в смысле не качает? а ты поменял значение переменной basePath?

в моём примере скачивается в папку приложения в файл file.htm

да поменял, и куда он качать то должен
я по системному манитору вижу что подключений приложение не делает
Записан
merke
Гость
« Ответ #8 : Июнь 26, 2011, 10:20 »

О ужас. Делай так PageDownloader *downloader = new PageDownloader(this);
Записан
dangreen
Гость
« Ответ #9 : Июнь 26, 2011, 13:07 »

О ужас. Делай так PageDownloader *downloader = new PageDownloader(this);
спасибо

я уже третий раз спрашиваю: куда файл то качается?
Записан
BRE
Гость
« Ответ #10 : Июнь 26, 2011, 13:17 »

я уже третий раз спрашиваю: куда файл то качается?

в моём примере скачивается в папку приложения в файл file.htm
А точнее в ту папку откуда запускалось приложение.
« Последнее редактирование: Июнь 26, 2011, 14:36 от BRE » Записан
dangreen
Гость
« Ответ #11 : Июнь 26, 2011, 15:28 »

я уже третий раз спрашиваю: куда файл то качается?

в моём примере скачивается в папку приложения в файл file.htm
А точнее в ту папку откуда запускалось приложение.


премного благодарен
« Последнее редактирование: Июнь 26, 2011, 15:39 от dangreen » Записан
dangreen
Гость
« Ответ #12 : Июнь 26, 2011, 16:21 »

Код:
QString basePath = "http://repo.inmac.org/";
QString named;

Downloader::Downloader(QObject *parent, QString down) : QObject(parent)
{    
        named=down;
        qnam = new QNetworkAccessManager(this);
        connect(qnam, SIGNAL(finished(QNetworkReply *)), SLOT(httpFinished(QNetworkReply *)));

        qnam->get(QNetworkRequest(QUrl(basePath+down)));
}

void Downloader::httpFinished(QNetworkReply *reply)
{
        QFile file("../Resources/"+named);
        if (file.open(QIODevice::WriteOnly))
        {
                file.write(reply->readAll());
                file.flush();
                file.close();
        }

        reply->deleteLater();
        reply = 0;
}

запускаю проект в Qt - файл качаеться
запускаю программу, ничего не качается

в чем ошибка?
Записан
iks
Гость
« Ответ #13 : Июнь 27, 2011, 22:37 »

Если под виндой то скорее всего не находит дрова, покиньте их в папку с бинарником (когда запускаете в Qt Creator то он дрова подкидывает, а если с бинарника то прога не находит их). На Linux в этом плане проще конечно, и так все находится
« Последнее редактирование: Июнь 27, 2011, 22:41 от iks » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #14 : Июнь 28, 2011, 00:19 »

по-моему драйвера и библиотеки - очень разные вещи Улыбающийся

если б не хватало библиотеки, приложение бы матюкнулось об этом еще во время запуска и не работало бы совсем
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.