使用MFC WinInet進行FTP中文件的簡單上傳和下載功能
阿新 • • 發佈:2018-06-25
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" } 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_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中文件的簡單上傳和下載功能