Tôi đang tải xuống tệp bằng QNetworkAccessManager :: nhận được nhưng không giống như QHttp :: không có cách tích hợp để ghi trực tiếp phản hồi vào một QIODevice khác.Viết QNetworkReply vào một tệp
Cách đơn giản nhất sẽ được để làm một cái gì đó như thế này:
QIODevice* device;
QNetworkReply* reply = manager.get(url);
connect(reply, SIGNAL(readyRead()), this, SLOT(newData()));
và sau đó trong newData khe:
device->write(reply->readAll());
Nhưng tôi không chắc chắn nếu điều này là đúng cách, có lẽ tôi Bỏ lỡ gì đó.
Tôi chưa gặp phải bất kỳ sự cố nào nhưng tôi lo lắng rằng nếu tôi có một lượng lớn tải xuống song song, toàn bộ hoạt động này có thể gây ra cổ chai. –
Không chắc chắn, nhưng có thể. Bạn có thể tối ưu hóa bằng cách sử dụng một chồng 'char buffer [4098]' để tránh 'malloc() s' liên quan đến việc tạo ra' QByteArray'. Cũng có 'QVarLengthArray'. –
yeah đó là những gì tôi đã làm với mảng char cục bộ. Cảm ơn bạn đã giúp đỡ. –