Название: Получить размер файла по ссылке 
					Отправлено: carhun от Июня 09, 2013,  09:15
					 
					Доброго времени суток. Подскажите пожалуйста могу ли я получить только размер файла без его скачивания? Пробовал делать вот так, но в этом случаи я так понимаю, что оно его сразу и скачивает, а мне это надо делать позже: (Код написан просто для теста, так что не ругайте) QString sUrl("https://github.com/zer0fl4g/Nanomite/blob/master/Build/x64/Release/QtCore4.dll?raw=true");    QUrl url(sUrl);    request.setUrl(QUrl(url));
     QNetworkAccessManager* pManager= new QNetworkAccessManager(this);    reply = pManager->get(request);    reply->deleteLater();    connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));    loop.exec();
     QVariant redirectionTarget = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);    if (reply->error()) {        qDebug() << reply->errorString();    }    if (!redirectionTarget.isNull()) {        qDebug() << "redirect to: " << redirectionTarget.toUrl();        reply = pManager->get(QNetworkRequest(redirectionTarget.toUrl()));        reply->deleteLater();        connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));        loop.exec();
         redirectionTarget = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
         if (!redirectionTarget.isNull()) {            qDebug() << "redirect to: " << redirectionTarget.toUrl();            reply = pManager->get(QNetworkRequest(redirectionTarget.toUrl()));            reply->deleteLater();            connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));            loop.exec();
             redirectionTarget = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);            if (!redirectionTarget.isNull()) {                qDebug() << "redirect to: " << redirectionTarget.toUrl();            }        }    }
     qDebug() << reply->header(QNetworkRequest::ContentLengthHeader).toUInt();
     file.setFileName(QFileInfo(url.path()).fileName());    if (file.open(QIODevice::WriteOnly) == false) {        qDebug() << "file not open";    }    file.write(reply->readAll()); 
					 
					 
					Название: Re: Получить размер файла по ссылке 
					Отправлено: mutineer от Июня 09, 2013,  09:53
					 
					По идее если сделать head-запрос вместо get, то получишь http-заголовок, в котором может быть размер 
					 
					 
					Название: Re: Получить размер файла по ссылке 
					Отправлено: carhun от Июня 09, 2013,  16:35
					 
					По идее если сделать head-запрос вместо get, то получишь http-заголовок, в котором может быть размер
  Спасибо, да так заработало.  
					
  
					
				 |