如何将QtQFtp客户端改写为支持长尾词的文件上传下载功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计484个文字,预计阅读时间需要2分钟。
目录
1.简介
2.使用的类
2.1 QNetworkReply 2.2 QNetworkRequest3.示例
3.1 示例1:本地搭建一个FTP服务器 3.2 示例2:实现FTP客户端端有多种方式 - Qt4:QFtp类 - Qt5:QNetworkAccessManager类 - QNetworkAccessManager支持目录
- 1.简介
- 2.用到的主要类
- 2.1QNetworkReply
- 2.2QNetworkRequest
- 3.示例
- 3.1本地搭建一个FTP服务器。
- 3.2示例
1.简介
实现FTP客户端有几种方式。
- Qt4 QFtp类
- Qt5 QNetworkAccessManager类
QNetworkAccessManager支持大多数的网络协议,比如"; //对话框标题 QString dlgTitle="保存文件"; //文件过滤器 QString filter="文本文件(*.txt)"; //打开对话框 QString fileName=QFileDialog::getSaveFileName(this,dlgTitle,filePath,filter); g_file.setFileName(fileName); g_file.open(QIODevice::WriteOnly); QString str = ui->lineEdit->text() + "data.txt"; QUrl url(str); url.setPort(21); url.setUserName(ui->leUser->text()); url.setPassword(ui->lePasswd->text()); QNetworkRequest request(url); m_reply = m_accessManager->get(request); connect(m_accessManager, &QNetworkAccessManager::finished, this, &WFtp::slotReplyFinished); connect(m_reply, SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(slotError(QNetworkReply::NetworkError))); connect(m_reply, &QNetworkReply::downloadProgress, this, &WFtp::slotDownloadProgress); connect(m_reply, &QNetworkReply::readyRead, this, &WFtp::slotRead); } void WFtp::slotRead() { g_file.write(m_reply->readAll()); }
上传代码:
首先弹出一个文件选择对话框,选择要上传的文件,读取文件的数据到byte变量中,设置传入到ftp sever中的文件名叫upLoad.txt,最后使用put方式上传文件。
//选择一个保存路径 //设置打开路径 QString filePath = "F://"; //对话框标题 QString dlgTitle="保存文件"; //文件过滤器 QString filter="文本文件(*.txt)"; //打开对话框 QString fileName=QFileDialog::getOpenFileName(this,dlgTitle,filePath,filter); g_file.setFileName(fileName); g_file.open(QIODevice::ReadOnly); QByteArray byte = g_file.readAll(); g_file.close(); QString str = ui->lineEdit->text() + "upLoad.txt"; QUrl url(str); url.setPort(21); url.setUserName(ui->leUser->text()); url.setPassword(ui->lePasswd->text()); QNetworkRequest request(url); m_reply = m_accessManager->put(request,byte); connect(m_accessManager, &QNetworkAccessManager::finished, this, &WFtp::slotReplyFinished); connect(m_reply, SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(slotError(QNetworkReply::NetworkError))); connect(m_reply, &QNetworkReply::downloadProgress, this, &WFtp::slotDownloadProgress);
上传成功
到此这篇关于Qt QFtp客户端实现上传下载文件的文章就介绍到这了,更多相关Qt QFtp上传下载内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!
本文共计484个文字,预计阅读时间需要2分钟。
目录
1.简介
2.使用的类
2.1 QNetworkReply 2.2 QNetworkRequest3.示例
3.1 示例1:本地搭建一个FTP服务器 3.2 示例2:实现FTP客户端端有多种方式 - Qt4:QFtp类 - Qt5:QNetworkAccessManager类 - QNetworkAccessManager支持目录
- 1.简介
- 2.用到的主要类
- 2.1QNetworkReply
- 2.2QNetworkRequest
- 3.示例
- 3.1本地搭建一个FTP服务器。
- 3.2示例
1.简介
实现FTP客户端有几种方式。
- Qt4 QFtp类
- Qt5 QNetworkAccessManager类
QNetworkAccessManager支持大多数的网络协议,比如"; //对话框标题 QString dlgTitle="保存文件"; //文件过滤器 QString filter="文本文件(*.txt)"; //打开对话框 QString fileName=QFileDialog::getSaveFileName(this,dlgTitle,filePath,filter); g_file.setFileName(fileName); g_file.open(QIODevice::WriteOnly); QString str = ui->lineEdit->text() + "data.txt"; QUrl url(str); url.setPort(21); url.setUserName(ui->leUser->text()); url.setPassword(ui->lePasswd->text()); QNetworkRequest request(url); m_reply = m_accessManager->get(request); connect(m_accessManager, &QNetworkAccessManager::finished, this, &WFtp::slotReplyFinished); connect(m_reply, SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(slotError(QNetworkReply::NetworkError))); connect(m_reply, &QNetworkReply::downloadProgress, this, &WFtp::slotDownloadProgress); connect(m_reply, &QNetworkReply::readyRead, this, &WFtp::slotRead); } void WFtp::slotRead() { g_file.write(m_reply->readAll()); }
上传代码:
首先弹出一个文件选择对话框,选择要上传的文件,读取文件的数据到byte变量中,设置传入到ftp sever中的文件名叫upLoad.txt,最后使用put方式上传文件。
//选择一个保存路径 //设置打开路径 QString filePath = "F://"; //对话框标题 QString dlgTitle="保存文件"; //文件过滤器 QString filter="文本文件(*.txt)"; //打开对话框 QString fileName=QFileDialog::getOpenFileName(this,dlgTitle,filePath,filter); g_file.setFileName(fileName); g_file.open(QIODevice::ReadOnly); QByteArray byte = g_file.readAll(); g_file.close(); QString str = ui->lineEdit->text() + "upLoad.txt"; QUrl url(str); url.setPort(21); url.setUserName(ui->leUser->text()); url.setPassword(ui->lePasswd->text()); QNetworkRequest request(url); m_reply = m_accessManager->put(request,byte); connect(m_accessManager, &QNetworkAccessManager::finished, this, &WFtp::slotReplyFinished); connect(m_reply, SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(slotError(QNetworkReply::NetworkError))); connect(m_reply, &QNetworkReply::downloadProgress, this, &WFtp::slotDownloadProgress);
上传成功
到此这篇关于Qt QFtp客户端实现上传下载文件的文章就介绍到这了,更多相关Qt QFtp上传下载内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

