C ++ FTP上传

时间:2015-07-11 20:07:49

标签: c++ ftp uploading

我在使用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;

}

1 个答案:

答案 0 :(得分:1)

尝试检查FtpPutFile()的返回值,如果为false,请检查GetLastError()的值。

请参阅:https://msdn.microsoft.com/en-us/library/windows/desktop/aa384170(v=vs.85).aspx