57 lines
1.6 KiB
C++
57 lines
1.6 KiB
C++
#ifndef FTPCLIENT_H
|
|
#define FTPCLIENT_H
|
|
|
|
#include <QtWidgets/QWidget>
|
|
#include <QtCore/QFile>
|
|
#include <QtNetwork/QNetworkRequest>
|
|
#include <QtNetwork/QNetworkReply>
|
|
#include <QtNetwork/QNetworkAccessManager>
|
|
#include <QUrl>
|
|
#include <QMessageBox>
|
|
#include <QtCore/QFileInfo>
|
|
#include <QProgressDialog>
|
|
|
|
class FtpClient : public QWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
FtpClient(QWidget *parent = 0);
|
|
~FtpClient();
|
|
public:
|
|
//设置ftp服务器用户名和密码
|
|
void SetUserInfo(const QString userAccount, const QString pwd);
|
|
//设置服务器地址和端口号
|
|
void SetServerInfo(const QString fileAddr, int Port=21);
|
|
//上传文件
|
|
void UpLoadFile(const QString fileSource, const QString fileDest,int type = -1);
|
|
//下载文件
|
|
void DownLoad(const QString fileSource, const QString fileDest);
|
|
|
|
void uploadFile(const QString fileUrl, const QString filePath,const QString fileName,int type = -1);
|
|
signals:
|
|
void sigReplyStatus(int result);
|
|
void sigDownloadProcess(qint64 byteSend, qint64 byteTotal);
|
|
void sigDownloadStatus();
|
|
public slots:
|
|
void CheckReplyStatus(QNetworkReply::NetworkError inputError);
|
|
void finished(QNetworkReply* reply);
|
|
//网络请求数据响应
|
|
void slotNetMgr(QString sAddr,const QVariant& msg);
|
|
void downloadProgress(qint64 byteSend, qint64 byteTotal);
|
|
private:
|
|
QFile* m_inputFile;
|
|
QNetworkAccessManager *m_ftpManager;
|
|
QUrl* m_ftpUrl;
|
|
int m_Type;
|
|
QString m_fileName;
|
|
|
|
QProgressDialog *progressDialog;
|
|
QNetworkReply* downloadReply;
|
|
};
|
|
|
|
|
|
extern FtpClient *g_FtpClient;
|
|
|
|
#endif // FTPCLIENT_H
|