1234567891011121314151617181920212223242526272829303132333435363738 |
- #include "webimage.h"
- WebImage::WebImage(QObject* parent) : QObject(parent)
- {
- }
- bool WebImage::download(QString url, QString savePath)
- {
- QNetworkAccessManager* manager = new QNetworkAccessManager(this);
- QNetworkRequest request;
- request.setUrl(QUrl(url));
- QNetworkReply* reply = manager->get(request);
- QTimer timer;
- timer.setSingleShot(true);
- QEventLoop loop;
- connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
- connect(&timer, &QTimer::timeout, &loop, &QEventLoop::quit);
- timer.start(10000);
- loop.exec();
- if (timer.isActive())
- {
- timer.stop();
- }
- int code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
- if (code == 200)
- {
- QByteArray data = reply->readAll();
- QFile file(savePath);
- file.open(QIODevice::WriteOnly);
- file.write(data);
- file.close();
- }
- delete manager;
- return code == 200;
- }
|