그래, 다시 나야. 나는 다음과 같은 코드가 있습니다QFile은 프로그램에 파일을 저장하고 종료합니다 ~ ~ 500MB 파일을 전혀 저장하지 마십시오
void MainWindow::on_startButton_clicked()
{
QNetworkAccessManager *nam = new QNetworkAccessManager(this);
QNetworkReply *re = nam->get(QNetworkRequest(QUrl("http://somesite/ai/iai.jpg")));
QEventLoop loop;
QObject::connect(reply, SIGNAL(readyRead()), &loop, SLOT(quit()));
loop.exec();
ui->dbgOut->insertHtml("<font color='green'>OK</font><br>");
ui->dbgOut->insertHtml("##################################");
//save
QFile file("C:\\a.bin");
file.open(QIODevice::WriteOnly);
file.write(re->readAll());
file.close();
}
을 그리고 나는 두 가지 문제가 있습니다
내가 버튼을 클릭하여 파일을 다운로드하지만, HDD에 기록하지 않을 때. 나는 5 분 10 분을 기다릴 수있다. 이 때 전체 파일은 프로그램 메모리에 저장됩니다. 내 프로그램을 닫으면 디스크에 저장됩니다.
대용량 파일 (~ 500MB)은 전혀 저장되지 않습니다. 프로그램을 닫으면 즉시 중단됩니다.
내 프로그램이 다운로드 한 파일을 "실시간으로"저장하도록 어떻게 편집 할 수 있습니까?
1) (완료에 연결해야한다),하지 readyRead(). 메모리 최적화를 위해, chunk readyReadRead와 함께 chunk를 읽을 수 있습니다. 2) 충돌에 대한 백 트레이스를 보여주십시오. – lpapp
[Qt로 파일 다운로드?] 가능한 중복 (http://stackoverflow.com/questions/13747548/downloading-a-file-with-qt) –