使用 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_OBJECT public:
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 network TARGET = ftpDemo
TEMPLATE = app SOURCES += main.cpp\
mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui

QNetworkAccessManager 实现的 ftp 上传的更多相关文章

  1. Qt5---ftp上传功能(使用组合的办法实现功能,QNetworkAccessManager自动管理分片上传,用QLoggingCategory屏蔽SSL警告)

      从Qt的版本进化中可以知道,在Qt4中的QFtp类到了Qt5中已经没有了,虽然可以通过在Qt5中自己编译出QFtp,但是Qt5中提供的QNetworkAccessManager在发送和请求网络方面 ...

  2. .net FTP上传文件

    FTP上传文件代码实现: private void UploadFileByWebClient() { WebClient webClient = new WebClient(); webClient ...

  3. 通过cmd完成FTP上传文件操作

    一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...

  4. FTP上传文件到服务器

    一.初始化上传控件. 1.我们这里用dropzone.js作为上传控件,下载地址http://www.dropzonejs.com/ 2.这里我们使用一个div元素作为dropzone载体. < ...

  5. 再看ftp上传文件

    前言 去年在项目中用到ftp上传文件,用FtpWebRequest和FtpWebResponse封装一个帮助类,这个在网上能找到很多,前台使用Uploadify控件,然后在服务器上搭建Ftp服务器,在 ...

  6. 【完整靠谱版】结合公司项目,仔细总结自己使用百度编辑器实现FTP上传的完整过程

    说在前面 工作中会遇到很多需要使用富文本编辑器的地方,比如我现在发布这篇文章离不开这个神器,而且现在网上编辑器太多了.记得之前,由于工作需要自己封装过一个编辑器的公共插件,是用ckeditor改版的, ...

  7. FTP上传文件提示550错误原因分析。

    今天测试FTP上传文件功能,同样的代码从自己的Demo移到正式的代码中,不能实现功能,并报 Stream rs = ftp.GetRequestStream()提示远程服务器返回错误: (550) 文 ...

  8. JAVA 实现FTP上传下载(sun.net.ftp.FtpClient)

    package com.why.ftp; import java.io.DataInputStream; import java.io.File; import java.io.FileInputSt ...

  9. FTP上传-封装工具类

    import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

随机推荐

  1. 基于LeNet网络的中文验证码识别

    基于LeNet网络的中文验证码识别 由于公司需要进行了中文验证码的图片识别开发,最近一段时间刚忙完上线,好不容易闲下来就继上篇<基于Windows10 x64+visual Studio2013 ...

  2. Pechkin:html -> pdf 利器

    Pechkin 是GitHub上的一个开源项目,可方便将html转化成pdf文档,使用也很方便,下面是winform项目中的示例代码: using System; using System.Diagn ...

  3. 汤姆大叔的6道javascript编程题题解

    看汤姆大叔的博文,其中有篇(猛戳这里)的最后有6道编程题,于是我也试试,大家都可以先试试. 1.找出数字数组中最大的元素(使用Math.max函数) var a = [1, 2, 3, 6, 5, 4 ...

  4. 系统升级日记(2)- 升级到SharePoint Server 2013

    最近一段时间在公司忙于将各类系统进行升级,其最主要的目标有两个,一个是将TFS2010升级到TFS2013,另外一个是将SharePoint 2010升级到SharePoint 2013.本记录旨在记 ...

  5. 开发WP版本的大菠萝英雄榜

    前言 想当年Team有无数人在玩大菠萝,我被忽悠进来做肉盾,选了蛮子,从1.0开始,经历了103.105.108.2.0.2.1.这个游戏对我最大的帮助是学习了不同的技术,比如XAML.比如xcode ...

  6. 安装.NET Framework后程序无法启动的错误处理

    最近发现一直在使用的Database.NET软件无法正常使用了,表现为当尝试进行Sql Server的连接创建时,直接报错 在事件查看器具体错误信息为: 日志名称:          Applicat ...

  7. 如何实现侧边栏菜单之间的分割线——不用border-bottom

    相信大家都遇到过这样一个老生常谈的问题,就是如果当我们所要做的菜单是侧边栏,垂直方向自上而下的排列的菜单栏,我们在做的时候通常的构想是这样的,就是在每两个菜单之间添加分割线,通常的想法就是说给每个菜单 ...

  8. BOP 2016 复赛题目

    复赛采用团队赛的形式,基于Azure云计算平台在实际大数据的基础上展开前沿课题的较量. 在编程之美挑战赛复赛中,选手需要通过组队共同完成复赛题,考查选手编程能力的同时,也考验选手的团队协作能力.选手点 ...

  9. 查询和修改(Queries and Mutations)

    On this page, you'll learn in detail about how to query a GraphQL server. 在这个页面,你将会学习更多的关于如何查询GraphQ ...

  10. 网上找到的一个jquery版网页换肤特效

    这个跟我之前在锋利的JQuery那本书里看到的那个一模一样. <!DOCTYPE html> <html> <head> <meta name="& ...