Je télécharge un fichier en utilisant QNetworkAccessManager :: get mais contrairement à QHttp :: get il n'y a pas de façon intégrée d'écrire directement la réponse à un QIODevice différent.Écrire un QNetworkReply à un fichier
La meilleure façon serait de faire quelque chose comme ceci:
QIODevice* device;
QNetworkReply* reply = manager.get(url);
connect(reply, SIGNAL(readyRead()), this, SLOT(newData()));
puis dans la fente newData:
device->write(reply->readAll());
Mais je ne suis pas sûr que ce soit la bonne façon, peut-être que je manqué quelque chose.
Je n'ai pas couru dans des problèmes à ce jour, mais je suis inquiet que si j'ai un grand nombre de téléchargements parallèles, toute cette opération pourrait causer un col de bouteille. –
Peu probable, mais possible. Vous pouvez optimiser en utilisant une pile 'char buffer [4098]' pour éviter le 'malloc() s impliqué dans la création de' QByteArray'. Il y a aussi 'QVarLengthArray'. –
ouais c'est ce que j'ai fait avec le tableau char local. Merci de votre aide. –