QQ登录

只需一步,快速开始

342上位机VC MFC实现FTP文件上传下载重命名删除

[ 复制链接 ]

342上位机VC MFC实现FTP文件上传下载重命名删除

342上位机VC MFC实现FTP文件上传下载重命名删除

FTP文件上传下载重命名删除
功能展示
网络中文件上传是常用的一功能,我们当前例程实现FTP服务器的连接,断开,文件上传下载,重命名与删除功能,效果如图,填写完正确的FTP服务器信息后,可以点击<连接><断开>。连接后,可以将本地的文件上传到服务器中,也可以从服务器下载文件到本地;

要点提示
当前例程实现文件上传下载是通过类CInternetSession与类CFtpConnection实现; CInternetSession建立一个INTERNET连接,通过其构造函数实现连接;通过其成员函数GetFtpConnection()可以获得CFtpConnection类的对象指针,再通过CFtpConnection类的成员函数PutFile(), GetFile(), Rename(), Remove就可以对文件进行上传下载,重命名删除操作;

实现功能
1.新建基于对话框的应用程序
2.在主对话框中添加两成员变量CInternetSession *m_pInetSession; CFtpConnection *m_pFtpConnection;及类所在头文件#include < afxinet.h > ;
3.依照例程界面添加编辑框IDC_FTP_IP, IDC_FTP_ACCOUNT, IDC_FTP_PASSWORD, IDC_LOCALFILE_EDIT, IDC_SERVERFILE_EDIT,分别对应FTP服务器IP地址,FTP账号, FTP密码,本地文件,服务器文件。再添加按钮<连接><断开><上传到服务器><从服务器下载><重命名服务器文件><删除服务器文件><本地文件>关联按钮的点击函数
void CGkbc8Dlg::OnConnect()//连接到服务器;
{
CString sFTP_IP,sFTP_ACCOUNT,sFTP_PASSWORD;
GetDlgItemText(IDC_FTP_IP,sFTP_IP);
GetDlgItemText(IDC_FTP_ACCOUNT,sFTP_ACCOUNT);
GetDlgItemText(IDC_FTP_PASSWORD,sFTP_PASSWORD);
if(sFTP_IP.IsEmpty()||sFTP_ACCOUNT.IsEmpty()||sFTP_PASSWORD.IsEmpty())
{
MessageBox("服务器信息添加不全");
return;
}
m_pInetSession = new CInternetSession(AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS);
try
{
m_pFtpConnection = m_pInetSession->GetFtpConnection(sFTP_IP, sFTP_ACCOUNT, sFTP_PASSWORD);
AfxMessageBox("连接到 " + sFTP_IP + "成功!");
}
catch(CInternetException *pEx)
{
TCHAR szError[1024];
if(pEx->GetErrorMessage(szError,1024))
AfxMessageBox(szError);
else
AfxMessageBox("发生错误.");
pEx->Delete();
m_pFtpConnection=NULL;
}
}
void CGkbc8Dlg::OnDisconnect() //断开与服务器连接
{
if(m_pFtpConnection)
{
m_pFtpConnection->Close();
delete m_pFtpConnection;
}
if(m_pInetSession)
{
m_pInetSession->Close();
delete m_pInetSession;
}
}
void CGkbc8Dlg::OnUpload()
{
CString sServerFile,sLocalFile;
GetDlgItemText(IDC_LOCALFILE_EDIT,sLocalFile);
GetDlgItemText(IDC_SERVERFILE_EDIT,sServerFile);
if (m_pFtpConnection)
{
if (!m_pFtpConnection->PutFile(sLocalFile,sServerFile))
MessageBox("上传文件失败.");
else
MessageBox("上传文件成功!");
}
else
MessageBox("还没有连接到FTP服务器。");
}
void CGkbc8Dlg::OnDownload()
{
CString sServerFile,sLocalFile;
GetDlgItemText(IDC_LOCALFILE_EDIT,sLocalFile);
GetDlgItemText(IDC_SERVERFILE_EDIT,sServerFile);
if (m_pFtpConnection)
{
if (!m_pFtpConnection->GetFile(sServerFile,sLocalFile))
MessageBox("下载文件失败.");
else
MessageBox("下载文件成功!");
}
else
MessageBox("还没有连接到FTP服务器。");
}

void CGkbc8Dlg::OnRename()
{
CString sServerFile,sNewFile;
GetDlgItemText(IDC_SERVERFILE_EDIT,sServerFile);
sNewFile = sServerFile;
sNewFile = sNewFile.Left(sNewFile.ReverseFind('\\')+1);
sNewFile+="工控编程吧.TXT";
if (m_pFtpConnection)
{
if (!m_pFtpConnection->Rename(sServerFile,sNewFile))
MessageBox("文件更名失败.");
else
MessageBox("文件更名成功!");
}
else
MessageBox("还没有连接到FTP服务器。");
}
void CGkbc8Dlg::OnDelete()
{
CString sServerFile;
GetDlgItemText(IDC_SERVERFILE_EDIT,sServerFile);
if (m_pFtpConnection)
{
if (!m_pFtpConnection->Remove(sServerFile))
MessageBox("文件删除失败.");
else
MessageBox("文件删除成功!");
}
else
MessageBox("还没有连接到FTP服务器。");
}
4.最后是变量的初始化及程序退出时的释放
m_pInetSession = NULL;
m_pFtpConnection = NULL;
////服务器信息是从主机屋注册获得
SetDlgItemText(IDC_FTP_IP,"111.67.201.209");
SetDlgItemText(IDC_FTP_ACCOUNT,"ftp581211");
SetDlgItemText(IDC_FTP_PASSWORD,"Aa123456");

SetDlgItemText(IDC_LOCALFILE_EDIT,"C:\\12.txt");
SetDlgItemText(IDC_SERVERFILE_EDIT,"\\Web\\23.txt");
void CGkbc8Dlg::OnDestroy()
{
CDialog::OnDestroy();
OnDisconnect();
}

我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:342.上位机VC MFC实现FTP文件上传下载重命名删除.zip 
文件大小:138.81 KB  售价:11金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!




回复

使用道具 举报

点击查看
快速回复 返回列表 客服中心 搜索