gpt4 book ai didi

delphi - 如何使用ftp://userName @ host连接到FTP

转载 作者:行者123 更新时间:2023-12-03 18:26:18 31 4
gpt4 key购买 nike

我无法连接到FTP服务器。大多数情况下,我这样连接到FTP服务器:

// ftp is TidFTP
ftp.Host := '119.xxx.xxx.133';
ftp.Username := 'fnc';
ftp.Password := 'fnc';
ftp.Port := 21;
ftp.ConnectTimeout := 5000;
ftp.Connect;


我们的管理员给了我这样的链接

ftp://fnc@119.xxx.xxx.133/Files/


访问FTP。用户名为fnc,端口为21,密码为fnc。

如果通过Windows资源管理器访问FTP,则不会出现任何错误,我可以完美地放置文件。但是,如果我在代码中执行此操作,则每次尝试放置文件时都会收到非法的端口命令错误。

请注意,我可以使用上面的代码连接到ftp服务器,但不能在其中放置任何文件。
提前致谢。

最佳答案

给定一个FTP URL,您需要解析该URL并将其组件分配给各种TIdFTP属性和方法,例如:

var
URL: string;
Uri: TIdURI;
begin
...
URL := ...; // 'ftp://fnc:fnc@119.xxx.xxx.133/Files/'
Uri := TIdURI.Create(URL);
try
ftp.Host := Uri.Host;
if Uri.Port <> '' then
ftp.Port := StrToInt(Uri.Port)
else
ftp.Port := 21;
ftp.Username := Uri.Username;
ftp.Password := Uri.Password;
ftp.ConnectTimeout := 5000;
ftp.Connect;
if Uri.Path <> '/' then
ftp.ChangeDir(Uri.Path);
...
finally
Uri.Free;
end;
...
end;

关于delphi - 如何使用ftp://userName @ host连接到FTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32522609/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com