建立基于对话框的MFC应用程序CMfcFtpWinInetDlg:

  1、首先Dlg类中包含头文件 #include "afxinet.h"

  2、添加成员变量:

 C++ Code 
1
2
3
 
  private:
    CFtpConnection*     m_pFtpConnection;
    CInternetSession    m_Session;

 

  3、在OnInitDialog中加入Ftp连接代码:

 C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
// TODO: Add extra initialization here
m_pFtpConnection = NULL;

try
{
    // Here usr is the username, pwd is the password 
    // and ftpsite.com is the name of the ftp site which
    // you want to connect to.

m_pFtpConnection = m_Session.GetFtpConnection(_T("localhost"), _T("Manager"), _T("kingview"), INTERNET_INVALID_PORT_NUMBER);
}
catch(CInternetException *pEx)
{
    pEx->ReportError(MB_ICONEXCLAMATION);
    m_pFtpConnection = NULL;
    pEx->Delete();
}

  4、在OK和Cancel按钮中加入关闭Ftp连接代码:

 C++ Code 
1
2
3
4
5
6
 
// TODO: Add your control notification handler code here
m_Session.Close();
m_pFtpConnection->Close();

if(m_pFtpConnection != NULL)
    delete m_pFtpConnection;

   5、添加Upload以及Download按钮代码:

 C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
void CMfcFtpWinInetDlg::OnBnClickedBtnUpload()
{
    // TODO: Add your control notification handler code here
    CFileFind Finder;
    CString strFileName;

// Here c:\\Myfile.bmp is the name of the file that you want 
    // to upload. It neednt necessarily be a bitmap file. You 
    // can upload any file that you want to.
    // The CString strFileName is used so that the same name 
    // is uploaded to the ftp server.
    // After uploading, the file in the ftp server will have 
    // the same name as your local file.
    // You can also rename it to anything

if(Finder.FindFile(_T("F:\\hot.gif"))==TRUE)
    {
        Finder.FindNextFile();
        strFileName = Finder.GetFileName();
        Finder.Close();
    }

BOOL bUploaded = m_pFtpConnection->PutFile( _T("F:\\hot.gif"),
                                                strFileName,
                                                FTP_TRANSFER_TYPE_BINARY,
                                                );

AfxMessageBox(_T("Uploaded Successfully"));
}

void CMfcFtpWinInetDlg::OnBnClickedBtnDownload()
{
    // TODO: Add your control notification handler code here
    BOOL bDownloaded = m_pFtpConnection->GetFile(   _T("hot.gif"),
                                _T("D:\\hot.gif"),
                                TRUE,
                                FILE_ATTRIBUTE_NORMAL,
                                FTP_TRANSFER_TYPE_BINARY,
                                );
    AfxMessageBox(_T("Downloaded Successfully"));
}

   API参数说明,请参考MSDN。

使用MFC WinInet进行FTP中文件的简单上传和下载功能的更多相关文章

  1. 基于commons-net实现ftp创建文件夹、上传、下载功能

    原文:http://www.open-open.com/code/view/1420774470187 package com.demo.ftp; import java.io.FileInputSt ...

  2. Java实现FTP文件与文件夹的上传和下载

    Java实现FTP文件与文件夹的上传和下载 FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制 ...

  3. c# ftp创建文件(非上传文件)

    c#  ftp创建文件(非上传文件) 一.奇葩的故事: 今天项目中遇到这么个奇葩的问题,ftp文件传输完成后要在ftp目录下另一个文件夹下创建对应的空文件,听说是为了文件的完整性,既然这么说,那么就必 ...

  4. iOS开发中文件的上传和下载功能的基本实现-备用

    感谢大神分享 这篇文章主要介绍了iOS开发中文件的上传和下载功能的基本实现,并且下载方面讲到了大文件的多线程断点下载,需要的朋友可以参考下 文件的上传 说明:文件上传使用的时POST请求,通常把要上传 ...

  5. JavaWeb中的文件上传和下载功能的实现

    导入相关支持jar包:commons-fileupload.jar,commons-io.jar 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上 ...

  6. win7下利用ftp实现华为路由器的上传和下载

    win7下利用ftp实现华为路由器的上传和下载 1.  Win7下ftp的安装和配置 (1)开始->控制面板->程序->程序和功能->打开或关闭Windows功能 (2)在Wi ...

  7. 【Python学习 】Python实现的FTP上传和下载功能

    一.背景 最近公司的一些自动化操作需要使用Python来实现FTP的上传和下载功能.因此参考网上的例子,撸了一段代码来实现了该功能,下面做个记录. 二.ftplib介绍 Python中默认安装的ftp ...

  8. secureCRT简单上传、下载文件记录

    secureCRT简单上传.下载文件记录: 1)sz下载 -y 覆盖 2)rz上传 -y 覆盖 3)以上两个命令属于安装时包含在“Dial-up Networking Support"组中 ...

  9. 与众不同 windows phone (13) - Background Task(后台任务)之后台文件传输(上传和下载)

    原文:与众不同 windows phone (13) - Background Task(后台任务)之后台文件传输(上传和下载) [索引页][源码下载] 与众不同 windows phone (13) ...

随机推荐

  1. 在Maprecue中利用MultipleOutputs输出多个文件

    用户在使用Mapreduce时默认以part-*命名, MultipleOutputs能够将不同的键值对输出到用户自己定义的不同的文件里. 实现过程是在调用output.write(key, new ...

  2. angular学习笔记(十四)-$watch(2)

    下面来看一个$watch的比较复杂的例子: 还是回到http://www.cnblogs.com/liulangmao/p/3700919.html一开始讲的购物车例子, 给它添加一个计算总价和折扣的 ...

  3. 每日英语:Genetic Manipulation Extends Life of Mice 20%

    By reducing the activity of one type of gene, scientists said they increased the average life span o ...

  4. Objective-C的“多继承”——消息转发

    Objective-C的“多继承”——消息转发 当单继承不够用,很难为问题域建模时,我们通常都会直接想到多继承.多继承是从多余一个直接基类派生类的能力,可以更加直接地为应用程序建模.但是Objecti ...

  5. 一款基于jquery的鼠标经过图片列表特效

    今天要给大家推荐一款基于jquery的鼠标经过图片列表特效.当鼠标经过列表图片的时候,图片放大,且有一个半透明的遮罩层随之移动.效果图如下: 在线预览   源码下载 实现的代码 html代码: < ...

  6. 测试markdown编辑器

    标题1 标题2 +++ 第一件事 +++ 第二件事 +++ 第三件事 |head|头|头栏| |body|body|body|

  7. linux中hive无法使用删除键或无反应

    用的工具secureCRT连接linux服务器的,登录到hive中后无法使用删除键. 修改如下: 会话选项 -> 终端|仿真 ->  选择终端为linux.

  8. 【Qt Tips】QLineEdit内容过滤之setValidator和setInputMask浅析

    1.QValidator分析 2.InputMask格式 3.测试代码和用例 项目路径: GitHub: https://github.com/Qunero/NeoQtTestDemo/tree/ma ...

  9. 轻量级ORM框架Dapper应用一:Dapper安装

    一.Dapper简介 Dapper是一款轻量级ORM框架,为解决网站访问流量极高而产生的性能问题而构造,主要通过执行TSQL表达式而实现数据库的CQRS. 如果你在项目中遇到性能访问问题,选择Dapp ...

  10. MongoDB Shell 了解使用

    配置环境变量 WIN10系统:右键单击"此电脑"--属性--高级系统设置--高级--环境变量,添加C:\Program Files\MongoDB\Server\3.0\bin 如 ...