Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: LinuxFanUNIX в Oct 24, 2009, 19:50



Титла: Download Request в Qt4 (как?)
Публикувано от: LinuxFanUNIX в Oct 24, 2009, 19:50
Добър вечер!

Правя следната програма, но срещам проблем (по-точно не намирам логично решение и аз не знам защо):

През деня съм линкнал една временна директория за данни към /var/www, така че като се влезе в http://192.168.0.1 се вижда съдържанието на въпросната папка.

Та въпроса ми е следния:
Как да направя така че ако на адрес http://192.168.0.1/error.txt има такъв файл (по-точно е изтеглим) тогава да тръгне да се тегли, а ако го няма да си пише че всичко е нормално и че няма проблеми?

Пробвах разни логики с QUrl, но без успех. Т.е. трябва ми нещо подобно на това:
Код
GeSHi (C++):
  1. if (QUrl("http://192.168.0.1/error.txt")->isDownloadable) {
  2.    download("http://192.168.0.1/error.txt"); // давам го като пример де.
  3. } else {
  4.    // тук ще има някой QDialog който ще казва че всичко е наред
  5. }

Имайте впредвид че тази програма ще работи в мрежата и не става директно да правя запитване към /var/www. Знам че с wget ще стане най-лесно, но пък тогава трябва да се отваря нов процес, и тогава програмата няма да е изцяло на C++/Qt4!

Благодаря предварително на отзовалите се!


Титла: Re: Download Request в Qt4 (как?)
Публикувано от: LinuxFanUNIX в Oct 28, 2009, 15:45
Никой ли няма да помогне?


Титла: Re: Download Request в Qt4 (как?)
Публикувано от: task_struct в Oct 28, 2009, 17:12
Рагледай кода на този клас : http://api.kde.org/4.3-api/kdelibs-apidocs/kio/html/classKIO_1_1StoredTransferJob.html

Пример как се ползва в DataEngine-ите (в папката providers) http://kde-look.org/content/show.php/Photo+of+the+Day?content=104631

От там можe да ти хрумне нещо как да си го направиш :)


Титла: Re: Download Request в Qt4 (как?)
Публикувано от: v_badev в Oct 28, 2009, 17:19
Защо не ползваш QHttp::get ($2)? Ако му закачиш сигнала readyRead и му дадеш само път до файла който трябва да свали, в случая error.txt, в слота за readyRead ще получиш http статус. Ако е 404 значи файла го няма, ако е 200 имаш файл.

Винаги е по-бързо ако прегледаш примерите които идват с Qt, това го намерих там.