Почему то не скачивает файл с помощью библиотеки QNetworkAccessManager
qt, QNetworkAccessManager, FTP
pesokWidget.pro
QT += core gui network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = pesokWidget
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
main.cpp \
widget.cpp
HEADERS += \
widget.h \
main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
w.resize(300, 50);
a.exec();
}
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QLineEdit>
#include <QPushButton>
class Widget : public QWidget
{
Q_OBJECT
QLineEdit *edit;
QPushButton *btn;
QNetworkAccessManager *manager;
public:
Widget(QWidget *parent = 0);
~Widget();
public slots:
void onBtn();
void replyFinished();
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include <QVBoxLayout>
#include <QApplication>
#include <QNetworkReply>
#include <QFile>
QStringList needToDounload = {
"ftp://cddis.gsfc.nasa.gov/pub/slr/data/npt_crd/gracea/2010/gracea_20100108.npt.Z",
"ftp://cddis.gsfc.nasa.gov/pub/slr/data/npt_crd/gracea/2010/gracea_20100101.npt.Z"
};
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
QVBoxLayout *mainL = new QVBoxLayout(this);
edit = new QLineEdit();
mainL->addWidget(edit);
btn = new QPushButton("Dounload");
mainL->addWidget(btn);
connect(btn, &QPushButton::clicked, this, &Widget::onBtn);
manager = new QNetworkAccessManager(this);
}
void Widget::onBtn()
{
// берем адрес введенный в текстовое поле
QUrl url(edit->text());
// создаем объект для запроса
QNetworkRequest request(url);
// Выполняем запрос, получаем указатель на объект
// ответственный за ответ
QNetworkReply* reply= manager->get(request);
// Подписываемся на сигнал о готовности загрузки
connect(reply, &QNetworkReply::finished, this, &Widget::replyFinished);
}
void Widget::replyFinished()
{
static int count = 0;
QNetworkReply *reply=
qobject_cast<QNetworkReply *>(sender());
if (reply->error() == QNetworkReply::NoError)
{
// Получаем содержимое ответа
QByteArray content= reply->readAll();
QStringList l = QApplication::arguments().at(0).split("\\");
l.removeLast();
QString fullName = l.join("\\") + QString("\\dounloadFile%1.file").arg(count++);
QFile file(fullName);
if (!file.open(QIODevice::WriteOnly)) {
qDebug() << QString("Could not open %1 for writing: %2")
.arg(fullName).arg(file.errorString());
return;
}
file.write(content);
file.close();
} else {
// Выводим описание ошибки, если она возникает.
qDebug() << reply->errorString();
}
// разрешаем объекту-ответа "удалится"
reply->deleteLater();
}
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.Вам це подобається? Поділіться в соціальних мережах!
AD
- Akiv Doros
- 11 листопада 2024 р. 14:58
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:50бали,
- Рейтинг балів-4
m
- molni99
- 26 жовтня 2024 р. 01:37
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80бали,
- Рейтинг балів4
m
- molni99
- 26 жовтня 2024 р. 01:29
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:20бали,
- Рейтинг балів-10
Останні коментарі
ИМ
Django - Підручник 017. Налаштуйте сторінку входу до Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь Максимов22 листопада 2024 р. 11:51
Evgenii Legotckoi31 жовтня 2024 р. 14:37
Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь Максимов05 жовтня 2024 р. 07:51
QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Тепер обговоріть на форумі
Evgenii Legotckoi24 червня 2024 р. 15:11
t
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
tonypeachey115 листопада 2024 р. 06:04
NSProject04 червня 2022 р. 03:49
IscanderChe31 жовтня 2024 р. 15:43
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
Добрый день!