
正文
QNetworkAccessManager 实现的 ftp 上传
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
使用 QNetworkAccessManager 实现的 ftp 上传代码。完整可用,做个备忘。
#include "mainwindow.h"
#include <QDebug>
#include <QObject>
#include <QFile>
#include <QTime>#include <QtGui>MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
manager = new QNetworkAccessManager; QPushButton *btnUpload = new QPushButton("Upload");
connect(btnUpload,SIGNAL(clicked()),this,SLOT(upload2Ftp()));// QHBoxLayout *layoutMain = new QHBoxLayout;
// layoutMain->addWidget(btnUpload);// centralWidget()-> setLayout(layoutMain);
setCentralWidget(btnUpload);
}MainWindow::~MainWindow()
{}void MainWindow::upload2Ftp()
{
QFile txt1("./test.txt"); txt1.open(QIODevice::ReadOnly); qDebug()<<txt1.isOpen(); QByteArray by_txt=txt1.readAll(); txt1.close(); qDebug()<<by_txt.toHex(); QUrl u("ftp://192.168.1.230"); u.setPath("/opt/myapp/test.txt");// u.setPort(21); u.setUserName("root"); u.setPassword("fa"); QNetworkReply *putReply = manager->put(QNetworkRequest(u), by_txt); connect(putReply, SIGNAL(finished()), this, SLOT(slotFinished())); connect(putReply, SIGNAL(error(QNetworkReply::NetworkError)),
this, SLOT(slotError(QNetworkReply::NetworkError)));
}void MainWindow::slotFinished()
{
QNetworkReply *reply = (QNetworkReply *)sender(); if(reply->error() == QNetworkReply::NoError)
{
qDebug()<<"Succed!";
}
else
{
qDebug()<<"Check & Retry!";
}
}void MainWindow::slotError(QNetworkReply::NetworkError errno)
{
QNetworkReply *reply = (QNetworkReply *)sender(); qDebug()<<"Network Error:"<<reply->errorString();
}//==================mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QNetworkAccessManager>#include <QUrl>
#include <QNetworkRequest>
#include <QNetworkReply>class MainWindow : public QMainWindow
{
Q_OBJECTpublic:
explicit MainWindow(QWidget *parent = );
~MainWindow();private:
QNetworkAccessManager *manager;private slots:
void upload2Ftp();
void slotFinished();
void slotError(QNetworkReply::NetworkError errno);
};#endif // MAINWINDOW_H//=====================*.pro
#-------------------------------------------------
#
# Project created by QtCreator --24T16::
#
#-------------------------------------------------QT += core gui networkTARGET = ftpDemo
TEMPLATE = appSOURCES += main.cpp\
mainwindow.cppHEADERS += mainwindow.hFORMS += mainwindow.ui








