qt - 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();
}
}
解决方案
推荐阅读
- javascript - React 应用程序抛出错误无法读取嵌套承诺中未定义的属性“setState”
- google-maps - 如何使用 Flutter 获得真正的方向步骤?(绘制真实路线)
- javascript - 如何在 Fullcalandar 中同时显示背景渲染和事件背景?
- python - 如何使用 selenium 和 beautifulsoup 单击元素?
- c# - 按钮太小了两个像素
- amazon-web-services - AWS 在谷歌云 (GCP) 中扮演等效角色?
- r - Rmarkdown在编织到单词时无法找到lua过滤器
- docker - 重新创建 Docker 映像
- tensorflow - 如何在 TensorFlow Object Detection API 中查看模型层的名称?
- android - 带有嵌套回收器视图和卡片侦听器的垂直回收器视图