Показать сообщение отдельно
Старый 12.03.2013, 18:28   #1
ІГРОГРАЙКО
ПроЭктировщик
 
Аватар для ІГРОГРАЙКО
 
Регистрация: 20.06.2009
Адрес: Україна
Сообщений: 152
Написано 10 полезных сообщений
(для 24 пользователей)
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 ???
__________________
Blitz3D, XNA, WebGL, OpenGL, Unity3D
PC: ASUS A55VM Core i3 (2.4Ghz), 6 Gb RAM, Nvidia GF 630M GT 2Gb
(Offline)
 
Ответить с цитированием