c++ - 在Qt中保存下载的文件

标签 c++ qt

每当有人单击链接时,我的插槽就会被调用,我知道文件在那里,因为我可以检索文件名和字节数,只是不确定在调用 QFileDialog 后如何保存它: :获取保存文件名?我知道如果用户决定更改它,我会得到文件的名称,但我如何获得他们决定保存文件的位置,然后将其写入该位置。

注意:他们将下载的文件是 word 文档,这有什么区别吗?

void MainWindow::unsupportedContent(QNetworkReply *reply) {

    qDebug() << "Left click - download!";
    qDebug() << "Bytes to download: " << reply->bytesAvailable();

    QString str = reply->rawHeader("Content-Disposition");

    QString end = str.mid(21);
    end.chop(1);

    qDebug() << "string: " << end;

    qDebug() << "File name: " << reply->rawHeader("Content-Disposition");
    qDebug() << "File type: " << reply->rawHeader("Content-Type");
    QString defaultFileName = QFileInfo(end).fileName();
    QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), defaultFileName);
    if (fileName.isEmpty()) return;


    QFile *file = new QFile(fileName);
    file->open(fileName);
    file->write(reply->read(reply->bytesAvailable()));
    file->close();
}

最佳答案

今天我在另一篇文章中对其进行了解释,因此我将在此处链接该文章:Post 我可以告诉你,你只需要实现一个写入你创建的文件的插槽。并在发出 readyRead() 信号时调用它。

关于c++ - 在Qt中保存下载的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13764842/

相关文章:

c++ - 如何使用 GDCM 读取多帧 DICOM 文件?

c++ - 没有标题栏的 QDockWidget

qt - 使用 Qt 生成 MD5 哈希值

qt - QGLWidget 和 QOpenGLWidget 有什么区别?

c++ - 无法打开源文件 "sys/types.h", "sys/stat.h"

c++ - 将新节点添加到链表的新方法

c++ - C++中的引用

c++ - 取消阻塞套接字的连接?

linux - 使用 Qt(在 X11 上)检测窗口标题栏中的控制按钮位置

c++ - 如何在 Qt 中通过 root 权限以编程方式运行打印命令 lpr -p