forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Qt как возобновить скачивание файла (QNetworkRequest) (http://forum.boolean.name/showthread.php?t=17988)

ІГРОГРАЙКО 12.03.2013 18:28

Qt как возобновить скачивание файла (QNetworkRequest)
 
Привет!

Я делаю стандартный довнлоад менеджер.
В нем должны быть кнопки старт, пауза, стоп. Он будет помнить какие части файла он скачал и должен возобновить закачку тех частей, которых еще нету.
Как это сделать?
В Qt скачать файл можно с помощью этих классов:
Код:

QNetworkAccessManager
QNetworkRequest
QNetworkReply

И самый простой способ скачать файл:
Код:

QNetworkAccessManager accesManager;
QNetworkRequest request("http://.../image.jpg");

//Начинаем скачивание
accesManager.get(request);

//Вызов saveFile() когда докачалось...
connect(&accesManager, SIGNAL(finished(QNetworkReply*)), SLOT(saveFile(QNetworkReply*)));

void saveFile(QNetworkReply *result)
{
QFile file("C:/.../image.jpg");
if (!file.open(QIODevice::WriteOnly))
    {
        qDebug() << "Cannot write file: " << file.fileName();
        return;
    }
else
    qDebug() << "File started! " << file.fileName();

file.write(result->readAll());

file.flush();
file.close();
qDebug() << "File saving - completted";
}

Должен это быть специфический QNetworkRequest, с подробным описанием какие части файла нужны, а не просто УРЛ на него? Если да, то как написать такой QNetworkRequest ???:dontknow:

ІГРОГРАЙКО 13.03.2013 17:48

Ответ: Qt как возобновить скачивание файла (QNetworkRequest)
 
Спасибо уже сам разобрался!

Заодно поделюсь может кому то пригодится:
How to download large file quickly in Qt


Часовой пояс GMT +4, время: 00:51.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot