qt QFtp 上传文件不成功

fengyoujie 2012-06-07 03:19:15
诸位老师,遇到一个问题,困惑不已。折磨2天了。

我做的工作。通过QFtp把本地文件上传到ftp服务器(file zilla)。

代码片段如下:



#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QObject>
#include <QFile>
#include <QFtp>
#include <QIODevice>
#include <QByteArray>
#include <QMessageBox>
#include <QUrl>
#include <QNetworkRequest>
#include <QNetworkAccessManager>
#include <QFileInfo>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow) {

ui->setupUi(this);
sourceLines.append(ui->lineEdit_s0);
sourceLines.append(ui->lineEdit_s1);
sourceLines.append(ui->lineEdit_s2);
sourceLines.append(ui->lineEdit_s3);
sourceLines.append(ui->lineEdit_s4);

destinationLines.append(ui->lineEdit_d0);
destinationLines.append(ui->lineEdit_d1);
destinationLines.append(ui->lineEdit_d2);
destinationLines.append(ui->lineEdit_d3);
destinationLines.append(ui->lineEdit_d4);

ui->progressBar->setRange(0,100);
ui->progressBar->setValue(0);

ftp = new QFtp(this) ;
connect(ui->pushButton_0,SIGNAL(clicked()),this,SLOT(upload2Ftp()));
}

MainWindow::~MainWindow() {
delete ui;
}

void MainWindow::inputFinish() {

}

void MainWindow::upload2Ftp() {
int a = ftp->connectToHost("127.0.0.1");
int islogin = ftp->login("admin","airchina");

if(!islogin){
QMessageBox msgBox;
msgBox.setText("connect server failure");
msgBox.exec();
return ;
}

QFile* file = new QFile("d:/aa.txt") ;
if(!file->open(QIODevice::ReadOnly)){
QMessageBox msgBox;
msgBox.setText("File Not Found");
msgBox.exec();
}

QByteArray byteArray = file->readAll();
ftp->setTransferMode(QFtp::Passive);

ftp->cd("/");

QFileInfo info("d:/aa.txt");
ftp->put(file, info.fileName());
connect(ftp,SIGNAL(dataTransferProgress(qint64,qint64)),this,SLOT(updateDataTranferProgress(qint64,qint64)));
ftp->close();

}

void MainWindow::updateDataTranferProgress(qint64 readBytes, qint64 totalBytes)
{
qDebug()<<"updateDataTranferProgress";

ui->progressBar->setValue((readBytes/totalBytes)*100);
}


诸位老师好。上面的代码是上传的代码 。可是运行之后,我在ftp服务器上并没有发现我上传的文件。这是怎么回事呢?多谢诸位。也没有错误日志。
...全文
838 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qt初体验 2013-05-14
  • 打赏
  • 举报
回复
ftp->close(); 你调用的早了吧 ,ftp是异步的 应该等待消息在close 我猜的没做过
Gova 2013-03-12
  • 打赏
  • 举报
回复
调用put不正确啊,把数据读到Bytearray了但是没有利用。

16,224

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧