首页 > 解决方案 > QNetworkAccessManager 上传失败

问题描述

在应用程序中,我每 2 分钟上传一个视频文件(大约 24Mb),效果很好。如果我在上一个文件结束后上传一个新文件,它也可以工作。

两分钟足以上传文件,但如果连接速度很慢并且新文件尝试上传应用程序会挂起。

我可以同时上传两个文件吗?

我的代码:

QString MainWindow::rename_video()
{
    QString oldName="C:/Qt/Qt5.10.1/Nuevo/build_principal_16/riderout.mp4";
    QString newName=QString::number(QDateTime::currentMSecsSinceEpoch())+".mp4";
    QFile f(oldName);

    if (f.rename(newName)) {
        // upload
        m_file = new QFile("C:/Qt/Qt5.10.1/Nuevo/build_principal_16/"+newName);

        QFileInfo fileInfo(*m_file);

        QUrl url("ftp://jumpemirates.com/app/history/"+newName);
        url.setUserName("user@email.com");
        url.setPassword("password");
        url.setPort(21);

        if (m_file->open(QIODevice::ReadOnly))
            QNetworkReply *reply = m_manager->put(QNetworkRequest(url), m_file);
    } else {
        qWarning("Unable to rename video file.");
        return "";
    }

    return newName;
}

void MainWindow::uploadFinished(QNetworkReply *reply) {
    if (!reply->error()) {
        m_file->close();
        m_file->deleteLater();
        reply->deleteLater();
    }
}

标签: qtqnetworkaccessmanager

解决方案


推荐阅读