Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 25.07.2016
Сообщений: 82
1

Как загружать несколько файлов сразу через QNetworkReply и QNetworkAccessManager

17.07.2017, 14:08. Показов 2590. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. задача такая, нужно мне скачать сразу несколько файлов как я это делаю:
C++ (Qt)
1
2
3
    QNetworkAccessManager* pmanager = new QNetworkAccessManager(this);
    pmanager->get(QNetworkRequest(url));
    connect(pmanager,SIGNAL(finished(QNetworkReply*)),this,SLOT(FinishDownload(QNetworkReply*)));
FinishDownload:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
    void Download_window::FinishDownload(QNetworkReply *replay){
    QString way = wayfile;
    if(replay->error() == QNetworkReply::NoError){
        QByteArray data = replay->readAll();
        QFile file(way);
        if(file.open(QIODevice::WriteOnly)){
            file.write(data);
            replay->deleteLater();
            file.close();
        }
    }
}
Когда я добавляю в загрузку к примеру 2 файла то по окончанию загрузки сохраняется только последний файл, то есть второй. Что делать? подскажите новичку.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2017, 14:08
Ответы с готовыми решениями:

Закачать разом несколько файлов через QNetworkAccessManager
Через QNetworkAccessManager::post() можно отправлять на HTTP-сервер файлы по одному. А можно ли...

Как загружать в БД сразу несколько изображений?
Как загрузить в базу данных сразу несколько изображений в одну категорию. При выводе этих значений...

QNetworkAccessManager и QNetworkReply - GET\POST
Здравствуйте. Хотел бы очень многое узнать подробно о классах QNetworkAccessManager и...

QNetworkAccessManager finished() не удаляется предыдущей QNetworkReply
Отправляю в цикле post запросы к серверу. Сигнал finished(), связываю с слотом в котором...

1
Эксперт С++
8482 / 6149 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
17.07.2017, 17:07 2
Лучший ответ Сообщение было отмечено Wyn как решение

Решение

Приблизительно так:


C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
QNetworkAccessManager* pmanager = new QNetworkAccessManager(this);
QStringList urls;
// urls << "http://url1/file1.jpg" <<  "http://url2/file2.jpg";
 
QStringList fileNames;
// fileNames << "file1.jpg" <<  "file2.jpg";
 
for (int i=0; i<2; ++i)
{
    QNetworkRequest request(urls[i]);
    QNetworkReply* reply=  manager->get(request);
    reply->setProperty("fileName", fileNames[i]); // use dynamic-properties
 
    connect( reply, SIGNAL(finished()),
             this, SLOT(replyFinished()) );
 
}


C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void DownloadWindow::replyFinished(QNetworkReply *replay)
{
    if(replay->error() == QNetworkReply::NoError)
    {
        QByteArray data = replay->readAll();
        QString fileName = replay->property("fileName");
        QFile file(fileName);
        if(file.open(QIODevice::WriteOnly))
        {
            file.write(data);
        }
    }
    replay->deleteLater();
}
http://doc.qt.io/qt-5.9/proper... properties
0
17.07.2017, 17:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.07.2017, 17:07
Помогаю со студенческими работами здесь

Как открыть сразу несколько текстовых файлов через "append from"?
суть в чем: мне необходимо сформировать из 2-х файлов txt сделать 1 курсор (дбф)! вот примерно...

Как сразу закрыть несколько файлов
кто-нибудь знает еще варианты кроме fclose()?

Как удалить сразу несколько файлов
Здраствуйте я помогите пожалуйста с php кодом я тут хочу сделать один мог и не могу понять как...

Как открывать несколько файлов сразу?
Здравствуйте. Появился следующий вопрос. Есть определенный формат файлов, привязанный к моему...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru