使用 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. Linux 网络编程详解九

    TCP/IP协议中SIGPIPE信号产生原因 .假设客户端socket套接字close(),会给服务器发送字节段FIN: .服务器接收到FIN,但是没有调用close(),因为socket有缓存区,所 ...

  2. MVC UpdateModel的未能更新XXXXX的类型模型

    关于MVC  UpdateModel的未能更新XXXXX的类型模型 的问题: 最近做MVC3的项目,相信很多人都碰到过这个问题,在此记录一下,异常:UpdateModel的未能更新XXXXX的类型模型 ...

  3. JAVA格物致知基础篇:用JAX-RS和Jersey打造RESTful Service

    随着服务器的处理能力越来越强,业务需求量的不断累积,越来越多的公司开始从单一服务器,单一业务承载变成了多服务器,多业务承载的快速扩展的过程中.传统的方法很难满足和应付这种业务量的增长和部署方式的改变. ...

  4. Last-Modified,Etag,Expire区别

    Last-Modified 是什么 Last-Modified 是 HttpHeader 中的资源的最后修改时间,如果带有 Last-Modified ,下一次发送 Http 请求时,将会发生带 If ...

  5. Beta版本项目展示要求

    项目评审的定在1月5日上午9:00在新主楼D225进行. 在Beta阶段项目评审会上, 每个团队有12分钟展示时间,10分钟问答和机动时间,我们的展示也不需要PPT,大家把要展现的东西写成博客(可以有 ...

  6. 如何用 Nodejs 分析一个简单页面

    本文目的 在浏览器地址栏中输入 localhost:3000,在页面显示 博客园首页 的 20 篇文章标题. 过程分析 首先需要端口的监听,这就需要引入 Node 中最重要的模块之一 express. ...

  7. 读懂IL代码就这么简单 (一)

    一前言 感谢 @冰麟轻武 指出文章的错误之处,现已更正 对于IL代码没了解之前总感觉很神奇,初一看完全不知所云,只听高手们说,了解IL代码你能更加清楚的知道你的代码是如何运行相互调用的,此言一出不明觉 ...

  8. 10分钟使用纯css实现完整的响应式导航菜单栏的效果

    在开发hexo主题pixel的时候没有选择bootstrap和jquery实现响应式菜单,而是 使用了纯css实现响应式菜单,这个想法来自于You-Dont-Need-Javascript, 这个项目 ...

  9. 关于BOM

    BOM:浏览器对象模型 (Browser Object Model)主要定义的是JS操作浏览器的方法和属性. 大部分方法都在window下. 常用方法:(JS里面规定如果方法前面是window,win ...

  10. 领导让我重新做一个微信H5页面!

    leader:我们需要做一个微信H5页面,效果如图,功能如描述,时间越快越好. 需求是不是很简单呢?2015-11-24 12:44:00文末有最新更新 背景描述 前几天微信转发相关项目开发后,这是第 ...