我在使用C ++中的wininet.h将文件上传为测试时遇到问题。 这不是我的代码,但在我开始学习它之前,我想确保它有效。 它完美运行并按预期关闭,但我查看了我的ftp并且我的文件没有显示意味着它没有以某种方式转移。 有人可以给我解释为什么会发生这种情况吗?
以下是我正在学习的代码:
#include <windows.h>
#include <wininet.h>
#include <iostream>
#include <stdio.h>
#pragma comment(lib, "wininet.lib")
int main()
{
HINTERNET hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); // Initialization for WinInet Functions
if (!hInternet) { return 1; }
// Starts a session in this case an FTP session
HINTERNET hFtpSession = InternetConnect(hInternet, "ftp.byethost3.com", INTERNET_DEFAULT_FTP_PORT, "username", "password", INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
if (!hFtpSession) {
InternetCloseHandle(hInternet);
return 1;
}
FtpPutFile(hFtpSession, "C://Users//Programming//Downloads//test.txt", "test.txt", FTP_TRANSFER_TYPE_BINARY, 0);
// Uploads the file C:\\Test.txt onto the FTP server as Test.txt
InternetCloseHandle(hFtpSession); // Close hFtpSession
InternetCloseHandle(hInternet); // Close hInternet
return 0;
}
答案 0 :(得分:1)
尝试检查FtpPutFile()
的返回值,如果为false,请检查GetLastError()
的值。
请参阅:https://msdn.microsoft.com/en-us/library/windows/desktop/aa384170(v=vs.85).aspx