Today’s Little Program uploads a file to an FTP site in binary mode with the assistance of the Wininet library. This program has sat in my bag of tools for years.
#define STRICT
#define UNICODE
#include <windows.h>
#include <wininet.h>
#include <shellapi.h>
int __cdecl wmain(int argc, PWSTR argv[])
{
if (argc == 6) {
HINTERNET hintRoot = InternetOpen(TEXT("ftpput/1.0"),
INTERNET_OPEN_TYPE_DIRECT,
NULL, NULL, 0);
if (hintRoot) {
HINTERNET hintFtp = InternetConnect(hintRoot,
argv[1],
INTERNET_DEFAULT_FTP_PORT,
argv[2],
argv[3],
INTERNET_SERVICE_FTP,
INTERNET_FLAG_PASSIVE,
NULL);
if (hintFtp) {
FtpPutFile(hintFtp, argv[4], argv[5],
FTP_TRANSFER_TYPE_BINARY,
NULL);
InternetCloseHandle(hintFtp);
}
InternetCloseHandle(hintRoot);
}
}
return 0;
}
The program accepts five command line arguments:
- site (no “ftp://” in front)
- userid
- password
- path for the file to upload
- location to place the uploaded file
For example, I might say
ftpput ftp.contoso.com admin
seinfeld newversion.zip subdir/newversion.zip
0 comments