C++实现向FTP上传文件

连接

    CInternetSession *m_pInetsession;
    CFtpConnection *m_pFtpConnection;
    m_pInetsession=new CInternetSession(AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS);
    try
    {
         m_pFtpConnection=m_pInetsession->GetFtpConnection("127.0.0.1",NULL,NULL,38);
         MessageBox("连接成功");
    }
    catch(CInternetException *pEx)
    {
        TCHAR szError[1024];
        if(pEx->GetErrorMessage(szError,1024))
            AfxMessageBox(szError);
        else
            AfxMessageBox("There was an exception");
        pEx->Delete();
        m_pFtpConnection=NULL;
        return;
    }

下载文件

BOOL GetFile( LPCTSTRpstrRemoteFile, LPCTSTRpstrLocalFile, BOOLbFailIfExists = TRUE, DWORDdwAttributes
= FILE_ATTRIBUTE_NORMAL, DWORD
dwFlags = FTP_TRANSFER_TYPE_BINARY, DWORDdwContext = 1 );

pstrRemoteFile

A pointer to a null-terminated string containing the name of a file to retrieve from the FTP server.

pstrLocalFile

A pointer to a null-terminated string containing the name of the file to create on the local system.

bFailIfExists

Indicates whether the file name may already be used by an existing file. If the local file name already exists, and this parameter isTRUE,GetFile fails. Otherwise,
GetFile will erase the existing copy of the file.

dwAttributes

Indicates the attributes of the file. This can be any combination of the following FILE_ATTRIBUTE_* flags.

  • FILE_ATTRIBUTE_ARCHIVE   The file is an archive file. Applications use this attribute to mark files for backup or removal.
  • FILE_ATTRIBUTE_COMPRESSED   The file or directory is compressed. For a file, compression means that all of the data in the file is compressed. For a directory, compression is the default for newly created files and subdirectories.
  • FILE_ATTRIBUTE_DIRECTORY   The file is a directory.
  • FILE_ATTRIBUTE_NORMAL   The file has no other attributes set. This attribute is valid only if used alone. All other file attributes override FILE_ATTRIBUTE_NORMAL:
  • FILE_ATTRIBUTE_HIDDEN   The file is hidden. It is not to be included in an ordinary directory listing.
  • FILE_ATTRIBUTE_READONLY   The file is read only. Applications can read the file but cannot write to it or delete it.
  • FILE_ATTRIBUTE_SYSTEM   The file is part of or is used exclusively by the operating system.
  • FILE_ATTRIBUTE_TEMPORARY   The file is being used for temporary storage. Applications should write to the file only if absolutely necessary. Most of the file’s data remains in memory without being flushed to the media because the file will soon be deleted.

dwFlags

Specifies the conditions under which the transfer occurs. This parameter can be any of thedwFlags values described inFtpGetFile
in thePlatform SDK.

dwContext

The context identifier for the file retrieval. See Remarks for more information aboutdwContext.

[cpp] view plaincopyprint?

  1. m_pFtpConnection->GetFile("1.txt","D:\\1.txt",false,FILE_ATTRIBUTE_NORMAL,FTP_TRANSFER_TYPE_BINARY,1)

删除服务器上的文件

BOOL Remove( LPCTSTR pstrFileName );

Return Value

Nonzero if successful; otherwise 0. If the call fails, the Win32 functionGetLastError may be called to determine the cause of the error.

Parameters

pstrFileName

A pointer to a string containing the file name to remove.

[cpp] view plaincopyprint?

  1. m_pFtpConnection->Remove("1.txt")

上传文件

BOOL PutFile( LPCTSTR pstrLocalFile, LPCTSTRpstrRemoteFile, DWORDdwFlags = FTP_TRANSFER_TYPE_BINARY, DWORDdwContext = 1 );

Return Value

Nonzero if successful; otherwise 0. If the call fails, the Win32 functionGetLastError may be called to determine the cause of the error.

Parameters

pstrLocalFile

A pointer to a string containing the name of the file to send from the local system.

pstrRemoteFile

A pointer to a string containing the name of the file to create on the FTP server.

dwFlags

Specifies the conditions under which the transfer of the file occurs. Can be any of the FTP_TRANSFER_* constants described inOpenFile.

dwContext

The context identifier for placing the file. See Remarks for more information aboutdwContext.

[cpp] view plaincopyprint?

  1. m_pFtpConnection->PutFile("D:\\3.txt","3.txt",FTP_TRANSFER_TYPE_BINARY,1)

C++实现向FTP上传文件

时间: 2024-10-05 02:29:29

C++实现向FTP上传文件的相关文章

再看ftp上传文件

前言 去年在项目中用到ftp上传文件,用FtpWebRequest和FtpWebResponse封装一个帮助类,这个在网上能找到很多,前台使用Uploadify控件,然后在服务器上搭建Ftp服务器,在本地测试程序上传到ftp服务器一点问题都没有,奇怪的是当发布Web和ftp到同一个IIS下,上传文件时程序直接卡死,然后页面卡死,后来我又发现把Web和ftp分开发布在两台机器上问题又得到解决,所以当时放弃了这个方案. 再看ftp上传文件 前几天偶然看到Wolfy写到一个项目总结,其中提到了用Ser

C# FTP上传文件至服务器代码

C# FTP上传文件至服务器代码 /// <summary> /// 上传文件 /// </summary> /// <param name="fileinfo">需要上传的文件</param> /// <param name="targetDir">目标路径</param> /// <param name="hostname">ftp地址</param&g

Java ftp 上传文件和下载文件

今天同事问我一个ftp 上传文件和下载文件功能应该怎么做,当时有点懵逼,毕竟我也是第一次,然后装了个逼,在网上找了一段代码发给同事,叫他调试一下.结果悲剧了,运行不通过.(装逼失败) 我找的文章链接:http://blog.csdn.net/yucaifu1989/article/details/51483118 为了方便大家对比,我吧文章代码偷了过来: import java.io.File; import java.io.FileInputStream; import java.io.Fil

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

今天测试FTP上传文件功能,同样的代码从自己的Demo移到正式的代码中,不能实现功能,并报 Stream rs = ftp.GetRequestStream()提示远程服务器返回错误: (550) 文件不可用(例如,未找到文件, 百度查找原因: 1.说文件权限: 2.路径是否正确: 3.路径是不是要加“@” 还有其他各类说法,逐一检查未发现错误,关键是同一个文件同样代码,一个程序可以正确完成上传,一个跳异常. 后来突然想到拷贝代码时FTP类提示using System.Linq;命名空间错误.

本地虚拟机中匿名ftp上传文件失败的问题

在10.10.50.230中新建了一个匿名的ftp服务器,结果在10.10.50.241中上传文件时提示: local: README.txt remote: /var/ftp/pub/upload 227 Entering Passive Mode (10,10,50,230,117,8). 553 Could not create file.   由于搭建步骤是完全按照标准文档建立的,vsftp.conf的设置应该没有问题,检查:getsebool -a|grep ftp 发现: allow

FTP上传文件速度太慢怎么办?

用户在建设网站时必不可少的一类工具就是文件传输工具.通过客户端和主机之间的文件交互,及时上传补丁文件.下载日志文件等,确保网站的正常稳定运行.但是也有不少用户反映使用FTP上传文件速度太慢,这是什么原因呢?FTP上传文件速度太慢怎么办?一.为什么FTP上传文件速度太慢? 运维人员在日常的工作中会使用FTP软件上传补丁.升级包.下载数据.日志等数据.FTP上传与下载速度慢,严重的影响运维人员的工作效率,与此同时一味的指责网络提供商,其实有些以偏概全. 为什么FTP上传文件速度太慢呢? FTP协议自

PHP使用FTP上传文件到服务器(实战篇)

我们在做开发的过程中,上传文件肯定是避免不了的,平常我们的程序和上传的文件都在一个服务器上,我们也可以使用第三方sdk上传文件,但是文件在第三方服务器上.现在我们使用PHP的ftp功能把文件上传到我们自己的服务器,我使用的linux的服务器,首先确保服务器上配置好ftp,以vsftpd为例. FTP类,此类包含把文件上传.下载.删除和删除ftp服务器目录功能,php版本>=7.0 <?php /** * Created by PhpStorm. * User: 123456 * Date: 2

java使用ftp上传文件

ftpServer是apache MINA项目的一个子项目,它实现了一个ftp服务器,与vsftpd是同类产品.Filezilla是一个可视化的ftp服务器. ftp客户端也有很多,如Filezilla,FlashFXP,SmartFtp等,其中只有Filezilla是免费的. 今天使用Filezilla上传文件总是失败,一直显示 错误: 20 秒后无活动,连接超时 错误: 文件传输失败 用FlashFXP却可以很正常上传文件,但FlashFXP试用期只有30天,网上搜索注册码未果,遂想学学ja

ftp上传文件

ftp服务使用apache的commons-net进行上传操作,所以要下载commons-net的jar包,服务器采用centeros linux操作系统,运行nginx服务器,安装使用yum -y install vsftp 安装vsftp服务,并创建ftp用户. 关于vsftp与nginx的安装,百度即可. 以下是使用代码的方式上传文件 ftpUtil.java package com.taotao.utils; import java.io.File; import java.io.Fil