qfile.write()只写的大文件的前22mbytes
题
我有以下代码:
QNetworkAccessManager *nam = new QNetworkAccessManager(this);
QNetworkReply *re = nam->get(QNetworkRequest(QUrl("http://somesite/ai.bin")));
QEventLoop loop;
QObject::connect(reply, SIGNAL(readyRead()), &loop, SLOT(quit()));
int timeInSeconds = 10;
QTimer *idleTimer = new QTimer(this);
connect(idleTimer,SIGNAL(timeout()),&loop,SLOT(quit()));
idleTimer->setInterval(timeInSeconds *1000);
idleTimer->start();
loop.exec();
//save
QFile file("C:/a.jpg");
file.open(QIODevice::WriteOnly);
file.write(re->readAll());
ui->dbgOut->insertHtml("<font color='green'>OK</font><br>");
.
如果遥控器是5 MB,它可以工作,BT如果文件是50或500MB的文件,则程序只能保存前22 MB,而该过程仍在后台下载文件。
我做错了什么?
解决方案
10秒可能不足以根据您的Internet连接下载全部。不要使用这样的计时器。要立即效果,请删除这些线路:
int timeInSeconds = 10;
QTimer *idleTimer = new QTimer(this);
connect(idleTimer,SIGNAL(timeout()),&loop,SLOT(quit()));
idleTimer->setInterval(timeInSeconds *1000);
idleTimer->start();
. 不隶属于 StackOverflow