1

誰かがリンクをクリックするたびにスロットが呼び出され、ファイル名とバイト数を取得できるため、ファイルがそこにあることがわかります。QFileDialog:: getSaveFileNameを呼び出した後、ファイルを保存する方法がわかりません。ユーザーがファイルを変更することを決定した場合、ファイルの名前が表示されることはわかっていますが、ファイルを保存することを決定した場所を取得して、その場所に書き込むにはどうすればよいですか。

注意:彼らがダウンロードするファイルは、それが何か違いを生むのであれば、ワードドキュメントですか?

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();
}
4

1 に答える 1

1

今日、私は別の投稿でそれを説明したので、ここにその投稿をリンクします:投稿 私はあなたが作成したファイルに書き込むスロットを実装するだけでよいとあなたに言うことができます。そしてreadyRead()シグナルが出たときにそれを呼び出します。

于 2012-12-07T14:23:05.537 に答える