0 / 0 / 0
Регистрация: 25.07.2016
Сообщений: 82
1

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

17.07.2017, 14:08. Показов 2637. Ответов 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.07.2017, 14:08
Ответы с готовыми решениями:

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

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

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

1
Эксперт С++
 Аватар для Avazart
8483 / 6150 / 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.07.2017, 17:07
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Сопоставление с образцом (Pattern Matching) в Python: Списки и словари
py-thonny 19.03.2025
Программисты любят, когда код говорит сам за себя. Представьте, что вы можете просмотреть структуру данных и мгновенно понять, что с ней делать — без сложных условий и вложенных проверок. Именно эту. . .
Работа с метаданными EXIF и JPEG в JavaScript
run.dev 19.03.2025
Работа с изображениями в веб-разработке нередко выходит за рамки простого отображения картинки. Современные задачи требуют глубокого понимания структуры файлов и умения манипулировать их внутренними. . .
Чеклист для Kubernetes в продакшене: Лучшие практики для SRE
Mr. Docker 19.03.2025
Когда сталкиваешься с запуском Kubernetes в продакшене, невольно задаешься вопросом: почему то, что так гладко работало в тестовой среде, вдруг начинает вызывать головную боль на боевых системах?. . .
Разработка продвинутого ИИ в Unity с использованием Behavior Graph
GameUnited 19.03.2025
В разработке игр искусственный интеллект персонажей часто становится тем элементом, который превращает хорошую игру в выдающуюся. До недавнего времени разработчикам под Unity приходилось либо писать. . .
Словари в Python: методы работы, оптимизация, сериализация
py-thonny 19.03.2025
Каждый хотя бы раз сталкивался с необходимостью хранить связанные данные, где важна не только сама информация, но и их взаимосвязь. В дебрях Python словари — это тот универсальный инструмент, который. . .
Реализация паттерна CQRS с Event Sourcing в PHP
Jason-Webb 19.03.2025
CQRS (Command Query Responsibility Segregation) — это архитектурный паттерн, который разделяет операции чтения и записи данных в приложении. Если вы столкнулись с ситуацией, когда ваше PHP-приложение. . .
std::span в C++: Подпредставлени­я и срезы
NullReferenced 18.03.2025
Если вы когда-нибудь работали с большими объемами данных в C++, то наверняка сталкивались с необходимостью манипулировать отдельными частями массивов или контейнеров. Традиционные подходы часто. . .
std::span в C++: Доступ к элементам и итерирование
NullReferenced 18.03.2025
В C++ каждый разработчик сталкивается с проблемой эффективного управления последовательностями данных. Представьте: вы работаете с массивом, передаете его в функцию, а затем в другую, и каждый раз. . .
Утечки памяти в C#
UnmanagedCoder 18.03.2025
Когда мы говорим о разработке приложений на C#, то часто успокаиваем себя мыслью, что сборщик мусора решит все наши проблемы с памятью. "Память управляется автоматически" — эта мантра прочно засела в. . .
std::span в C++: Введение в невладеющее представление
NullReferenced 18.03.2025
С появлением стандарта C++20 у нас появился новый инструмент — std::span, который представляет собой невладеющее представление для работы с последовательностями данных. std::span — это легковесный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru