如题,请给个例子,因为我司无法上外网,除了CSDN啊,博客园等,如果给链接最好给个CSDN的,十分感谢
解决方案 »
- 菜鸟发问:MDI中,CChildFrame::PreCreateWindow中更改子窗口为最大化为什么无效?
- 帮帮忙看下我的代码为什么连不上数据库
- 如何让MFC与HTML互操作?
- 汉字识别的高手请进来看看!谢谢!
- 一个客户端,用Socket做的。怎么样处理所谓的心跳测试啊
- 想做一个远程音视频通信的软件,用WINSOCKET怎样实现流式传输?
- 非常郁闷!!关于m_nCmdShow在何处被赋值的问题????
- ComboBox急急急急!!!!
- 为什么用CWnd::GetDescendantWindow获取不了子窗口的指针,我那个去
- 请教!串口通信的一个问题
- 得到浏览器里的按钮、编辑框等控件的句柄
- formview与CStatic
#include "FtpLoad.h"
CFtpLoad::CFtpLoad()
{
m_pInetSession = new CInternetSession;
m_bConnected = FALSE;
}
CFtpLoad::~CFtpLoad()
{
delete m_pInetSession;
}
BOOL CFtpLoad::FtpConn()
{
try
{
m_pFtpConnection = m_pInetSession->GetFtpConnection(m_ConnParam.m_csIp,
m_ConnParam.m_csUser,m_ConnParam.m_csPwsd ,m_ConnParam.m_Port,true);
if(!m_pFtpConnection)
{
m_bConnected = FALSE;
TRACE("GetFtpConnection FAILED!\n");
return FALSE;
}
}
catch (...)
{
m_bConnected = FALSE;
TRACE("GetFtpConnection FAILED!\n");
return FALSE;
} m_bConnected = TRUE; return TRUE;
}
BOOL CFtpLoad::FtpUpLoadExcute(CString csLocalFile,CString csRemoteFile)
{
BOOL ret;
if (m_bConnected == FALSE)
{
ret = FtpConn();
}
if(!ret)
{
return FALSE;
} //csRemoteFile = csRemoteFile+csLocalFile.Right(csLocalFile.ReverseFind('/')) ;
ret = m_pFtpConnection->PutFile(csLocalFile,m_ConnParam.m_csRemotePath + "/" + csRemoteFile);
if(!ret)
{
ret = FtpConn();
if (ret == FALSE)
{
return FALSE;
} ret = m_pFtpConnection->PutFile(csLocalFile,m_ConnParam.m_csRemotePath + "/" + csRemoteFile); return FALSE;
}
else
{
//AfxMessageBox("上传成功");
return TRUE;
}
}
BOOL CFtpLoad::FtpDownLoadExcute(CString csLocalFile,CString csRemoteFile)
{
BOOL ret;
if (m_bConnected == FALSE)
{
ret = FtpConn(); if (ret == FALSE)
{
return FALSE;
}
}
if(!m_pFtpConnection)
{
return FALSE;
} ret = m_pFtpConnection->GetFile(m_ConnParam.m_csRemotePath + "/" + csRemoteFile,csLocalFile,FALSE,FILE_ATTRIBUTE_NORMAL,FTP_TRANSFER_TYPE_BINARY,1);
if(!ret)
{
ret = FtpConn();
if (ret == FALSE)
{
return FALSE;
}
m_pFtpConnection->GetFile(m_ConnParam.m_csRemotePath + "/" + csRemoteFile,csLocalFile,FALSE,FILE_ATTRIBUTE_NORMAL,FTP_TRANSFER_TYPE_BINARY,1
else
{
//AfxMessageBox("下载成功");
//delete ConnInfom;
return TRUE;
}
}
void CFtpLoad::ParseRecvMsg(CString RecvMsg )
{
//解析FTP上传所需参数
CString csRecvMsg("");
csRecvMsg = RecvMsg;
int ipos =csRecvMsg.Find("ftp:/");
ipos = csRecvMsg.GetLength() -ipos;
csRecvMsg = csRecvMsg.Right(ipos - 6); CString csUserName("");
csUserName = csRecvMsg.Left(csRecvMsg.Find(':')); //用户名 ipos = csRecvMsg.Find(":");
ipos = csRecvMsg.GetLength() -ipos;
csRecvMsg = csRecvMsg.Right(ipos-1);
CString csPassWord(""); //密码
csPassWord = csRecvMsg.Left(csRecvMsg.Find('@')); //csRecvMsg = csRecvMsg.Right(csRecvMsg.Find('@')); ipos = csRecvMsg.Find("@");
ipos = csRecvMsg.GetLength() -ipos;
csRecvMsg = csRecvMsg.Right(ipos-1);
CString csIp(""); //IP
csIp = csRecvMsg.Left(csRecvMsg.Find(':')); ipos = csRecvMsg.Find(":");
ipos = csRecvMsg.GetLength() -ipos;
csRecvMsg = csRecvMsg.Right(ipos-1); CString csPort("");
csPort =csRecvMsg.Left(csRecvMsg.Find("/")); //Port
char * szPort = csPort.GetBuffer(); INTERNET_PORT iPort;
iPort=(INTERNET_PORT) atoi(szPort); ipos = csRecvMsg.Find("/");
ipos = csRecvMsg.GetLength() -ipos;
csRecvMsg = csRecvMsg.Right(ipos-1); CString csRemotePath("");
csRemotePath = csRecvMsg.Left(csRecvMsg.ReverseFind('//')); //远程路径 CString csFilePath(""); //CString csFileName("");
m_ConnParam.m_csIp = csIp;
m_ConnParam.m_csUser = csUserName;
m_ConnParam.m_Port = iPort;
m_ConnParam.m_csPwsd = csPassWord;
m_ConnParam.m_csRemotePath = csRemotePath;}
BOOL CTL1DefaultReply::UpLoadFileWithFTP(CString csPathFile,OperateType operType)
{
if (csPathFile.Find("/") == -1 && csPathFile.Find("\\") == -1)
{
return FALSE;
} int index = csPathFile.ReverseFind('\\');
if (index == -1)
{
index = csPathFile.ReverseFind('/');
}
CString FileName = csPathFile.Right(csPathFile.GetLength() - index - 1);
switch(operType)
{
case NONE_DOING:
break;
case UP_FILE:
m_FtpClient.ParseRecvMsg(m_csRevMsg);
m_FtpClient.FtpUpLoadExcute(csPathFile,FileName);
break;
case DOWN_FILE:
m_FtpClient.ParseRecvMsg(m_csRevMsg);
m_FtpClient.FtpDownLoadExcute(csPathFile,FileName);
break;
default:
break;
}
return TRUE;
}