1. 程式人生 > >使用MFC WinInet進行FTP中文件的簡單上傳和下載功能

使用MFC WinInet進行FTP中文件的簡單上傳和下載功能

sar wrap AC con ica bmp file ssa ucc

  建立基於對話框的MFC應用程序CMfcFtpWinInetDlg:

  1、首先Dlg類中包含頭文件 #include "afxinet.h"

  2、添加成員變量:

C++ Code
1
2
3
  private:
    CFtpConnection* m_pFtpConnection;
    CInternetSession m_Session;
 

  3、在OnInitDialog中加入Ftp連接代碼:

C++ Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// TODO: Add extra initialization here
m_pFtpConnection = NULL;

try
{
// Here usr is the username, pwd is the password
// and ftpsite.com is the name of the ftp site which
// you want to connect to.

m_pFtpConnection = m_Session.GetFtpConnection(_T(
"localhost"), _T("Manager"), _T("kingview"
), INTERNET_INVALID_PORT_NUMBER);
}
catch(CInternetException *pEx)
{
pEx->ReportError(MB_ICONEXCLAMATION);
m_pFtpConnection =
NULL;
pEx->Delete();
}

  4、在OK和Cancel按鈕中加入關閉Ftp連接代碼:

C++ Code
1
2
3
4
5
6
// TODO: Add your control notification handler code here
m_Session.Close();
m_pFtpConnection->Close();

if(m_pFtpConnection != NULL)
delete m_pFtpConnection;

   5、添加Upload以及Download按鈕代碼:

C++ Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
void CMfcFtpWinInetDlg::OnBnClickedBtnUpload()
{
// TODO: Add your control notification handler code here
CFileFind Finder;
CString strFileName;

// Here c:\\Myfile.bmp is the name of the file that you want
// to upload. It neednt necessarily be a bitmap file. You
// can upload any file that you want to.
// The CString strFileName is used so that the same name
// is uploaded to the ftp server.
// After uploading, the file in the ftp server will have
// the same name as your local file.
// You can also rename it to anything

if(Finder.FindFile(_T("F:\\hot.gif"))==TRUE)
{
Finder.FindNextFile();
strFileName = Finder.GetFileName();
Finder.Close();
}

BOOL bUploaded = m_pFtpConnection->PutFile( _T(
"F:\\hot.gif"),
strFileName,
FTP_TRANSFER_TYPE_BINARY,
1);

AfxMessageBox(_T(
"Uploaded Successfully"));
}

void CMfcFtpWinInetDlg::OnBnClickedBtnDownload()
{
// TODO: Add your control notification handler code here
BOOL bDownloaded = m_pFtpConnection->GetFile( _T("hot.gif"),
_T(
"D:\\hot.gif"),
TRUE,
FILE_ATTRIBUTE_NORMAL,
FTP_TRANSFER_TYPE_BINARY,
1);
AfxMessageBox(_T(
"Downloaded Successfully"));
}

   API參數說明,請參考MSDN。

使用MFC WinInet進行FTP中文件的簡單上傳和下載功能