【问题标题】:FtpOpenFile returns nil instead of file handle when uploading上传时 FtpOpenFile 返回 nil 而不是文件句柄
【发布时间】:2010-01-17 20:54:21
【问题描述】:

我在 Delphi 中使用 ftp 传输文件。

我可以连接到 ftp 帐户,但是当我尝试上传文件时 FtpOpenFile 函数返回 nil 而不是要上传文件的句柄。

hintfile := FtpOpenFile(hintconnect,PChar(tgtfn),GENERIC_WRITE,FTP_TRANSFER_TYPE_BINARY,0);

如果我使用 ftp 客户端应用程序和完全相同的凭据登录 ftp 站点,我可以毫无问题地上传文件。

任何建议表示赞赏。

【问题讨论】:

  • 错误是 ERROR_INTERNET_EXTENDED_ERROR。尝试使用 InternetGetLastResponseInfo 获取更多信息。
  • 500 Invalid PORT Command.', #13, #10, '500 'LPRT 6,16,0,0,0,0,0,0,0,0,2 etc 似乎是与反向通道端口号有关的已知 IIS FTP 问题。

标签: delphi ftp wininet


【解决方案1】:

尝试获取最后一个错误,文档说明了一切:

"如果成功则返回句柄,或者 否则为 NULL。检索特定的 错误信息,调用 GetLastError。”

http://msdn.microsoft.com/en-us/library/aa384166(VS.85).aspx

【讨论】:

    【解决方案2】:

    尝试将 INTERNET_FLAG_PASSIVE 添加到您的 Internetopen 调用中,另请参阅

    http://etutorials.org/Programming/Pocket+pc+network+programming/Chapter+2.+WinInet/File+Transfer+Protocol+FTP/

    【讨论】:

    • 你的意思是你的 InternetConnect 电话
    猜你喜欢
    • 1970-01-01
    • 2017-10-07
    • 2015-03-15
    • 1970-01-01
    • 2014-01-18
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多