15,979
社区成员
发帖
与我相关
我的任务
分享
);
return FALSE;
}
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;
}
#include "stdafx.h"
#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