设为首页 收藏本站
查看: 1463|回复: 0

[经验分享] 新建ftp站点,使用代码从ftp服务器下载文件(mfc)

[复制链接]

尚未签到

发表于 2016-6-9 10:45:17 | 显示全部楼层 |阅读模式
  使用个人电脑新建ftp站点:
  
  打开控制面板》程序》启用或关闭windows功能》勾选Internet信息服务所有单选框》确定》找到IIS管理器(直接搜索程序位置吧)并打开》在左侧菜单右击“网站”》新建ftp站点》选择物理路径》输入IP(选择下拉框里的IP,这是本机ipv4地址)》无需ssl(你喜欢勾选也可以的,随你吧)》基本(选择匿名的话访问时就不需要密码),所有用户(部分选项根据个人需求选择)》完成
  打开浏览器》输入ftp://127.0.0.1/》回车,就可以访问ftp了,(如果要他人电脑访问,那就要连入同一个局域网并且关掉本机防火墙以及360等等,并且在浏览器地址栏输入ftp站点地址即ipv4)如果不是匿名的要输入密码用户名,那么如何新建ftp用户并设置密码呢?
  
  新建ftp用户并设置密码:
  右击计算机》管理》本地用户和组》新建用户》这些用户就可以访问ftp站点啦!
  
  现在给出mfc代码使用FTP连接类实现从站点下载文件:
  
  

#include "afxinet.h"
//CInternetSession 和 CFtpConnection 类包含在afxinet.h头文件中
void CftpDlg::OnBnClickedButtonStart()
{
/*FTPConnect
CSocket *m_clientsocket = new CSocket();
//构造连接套接字对象
m_clientsocket->Creat(21,SOCK_STREAM,FD-READ|FD_WRITE,NULL);
//创建流式套接字
if(!m_clientsocket)*/
//第一步:建立ftp连接
// CInternetSession* m_pInetSession;
//CFtpConnection*   m_pFtpConnection;
m_InetSession = new CInternetSession( AfxGetAppName(), 1,
PRE_CONFIG_INTERNET_ACCESS);
try{
m_pFtpConnection = m_pInetSession->
// GetFtpConnection(addr, username, password, port);
GetFtpConnection((LPCTSTR)"10.96.23.29", (LPCTSTR)"helloworld", (LPCTSTR)"mima", 21);
//10.96.23.29  helloworld   mima    21
// addr       ftp服务器的地址  LPCTSTR ,LPCTSTR是指向常量字符串的长指针
// username   登陆用户名       LPCTSTR
// password   密码            LPCTSTR
// port       端口            UINT
}
//mfc 登录FTP站点  文件名 目录名或卷标语法不正确  ,估计是编码的问题,
//改变项目字符集改为多字节字符集,然后运行没有弹出错误了。
//若登陆不成功则抛出异常,以下是针对异常的处理
catch(CInternetException *pEx){
TCHAR szError[1024] = {0};
if(pEx->GetErrorMessage(szError,1024))
AfxMessageBox(szError);
else
AfxMessageBox(_T("There was an exception"));
pEx->Delete();
m_pFtpConnection = NULL;
return;
}
//下载文件,我把c:/修改为c:/test.txt,就提示下载成功了。原来会运行错误debug insertion failed,编译正确
//貌似第一个路径必须只是一个文件名,不是路径,
bool success=m_pFtpConnection->GetFile((LPCTSTR)("test.txt"), (LPCTSTR)("c:/test.txt"),FALSE,
FILE_ATTRIBUTE_NORMAL,
FTP_TRANSFER_TYPE_BINARY | INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE
);
/*GetFile(
remoteArray->GetAt(x),
localArray->GetAt(x),
FALSE,
FILE_ATTRIBUTE_NORMAL,
FTP_TRANSFER_TYPE_BINARY | INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE
);*/
//PutFile(_T("c:/test.txt"), _T("test.txt")))
if(!success)
AfxMessageBox(GetLastError());
else
AfxMessageBox(_T("下载成功"));
//这个函数封装了服务器端文件上传、写入和关闭等操作,
//所以本程序并不支持断线续传。如果想使程序支持断线续传,则需要是用CFtpConnection类中的OpenFile函数打开文件,然后使用CInternetFile类的函数来对文件进行读写控制。
}

  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-228156-1-1.html 上篇帖子: mule in action翻译18 : 3.6 使用FTP传输 下篇帖子: 使用Shell脚本实现ftp的自动上传下载
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表