Introduction
This article explains and demonstrates the usage of the File Transfer Protocol (FTP) to upload your files to a server
on the internet and to download files from a FTP server. This requires you to have the username and password to the ftp
server where you are going to upload files or from where you are going to download files.
Usage
FTP has many uses among which I can give you a few beginners examples. You can use it to store data on the server
which can be accessed by your fellow programmers who might be working in different locations. The way
I used it was for
the purpose of displaying a PowerPoint slideshow in one place and simultaneously broadcasting it to many clients.
The software captured the screenshots and saved them as a .jpg file on the ftp server. My client software used to
continuously access that server checking for new files and display them whenever a change is made. The client software
was basically a JPEG viewer software. You can cook up a lot more usages depending on your requirements.
Implementation
To use ftp, you need to add the afxinet.h header file.
- Add the following statement in your dialog's header file or if its a doc/view project, then add it to your document
class's header file.
#include "afxinet.h"
In the header file ( dialog's or document class's ), add the following Member Variables
CFtpConnection *m_pFtpConnection;
CInternetSession m_Session;
In your application's initialization ( OnInitDialog
or InitInstance
functions),
add the following lines.
m_pFtpConnection = NULL;
try
{
m_pFtpConnection = m_Session.GetFtpConnection("ftpSite.com",
"usr","pwd",INTERNET_INVALID_PORT_NUMBER);
}
catch(CInternetException *pEx)
{
pEx->ReportError(MB_ICONEXCLAMATION);
m_pFtpConnection = NULL;
pEx->Delete();
}
return TRUE;
To upload a file, add the following lines of code :-
CFileFind Finder;
CString strFileName;
if(Finder.FindFile("C:\\Myfile.bmp")==TRUE)
{
Finder.FindNextFile();
strFileName = Finder.GetFileName();
Finder.Close();
}
BOOL bUploaded = m_pFtpConnection->PutFile("C:\\Myfile.bmp",
strFileName,FTP_TRANSFER_TYPE_BINARY,1);
AfxMessageBox("Uploaded Successfully");
To download a file from a ftp site, you can use the following code. Here the first parameter is the file in
the ftp server. The 2nd parameter is the location where you want to store it in your hard disk.
m_pFtpConnection->GetFile("File.ext","C:\\File.ext",
TRUE,FILE_ATTRIBUTE_NORMAL,FTP_TRANSFER_TYPE_BINARY,1);
To close the connection
m_Session.Close();
m_pFtpConnection->Close();
if(m_pFtpConnection!=NULL)
delete m_pFtpConnection;
Revision History
- 31 Jul 2002 - Initial Revision [Basic Revision]
Conclusion
FTP is easy to use and has a lots of uses. Think of your own implementations and various features that can be added to the supplied code.
That's it. All luck and have a great time.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.