delphi中ftp上传后的随机文件名

delphi中ftp上传后的随机文件名,delphi,file-upload,ftp,indy,Delphi,File Upload,Ftp,Indy,我工作的应用程序需要上传文件到服务器。 我使用delphi和TIDFtp上传文件 一切正常,除了上传后的文件名是随机生成的。 我机器中的文件名为 test.txt 并在上传后将其命名在服务器上 如何解决这个问题 这是我的密码: IdFtp1.Host := 'host'; IdFtp1.Username := 'uname'; IdFtp1.Password := 'pass'; IdFtp1.Connect; IdFtp1.Put('test.txt'); IdFtp1.D

我工作的应用程序需要上传文件到服务器。 我使用delphi和TIDFtp上传文件

一切正常,除了上传后的文件名是随机生成的。 我机器中的文件名为

test.txt

并在上传后将其命名在服务器上

如何解决这个问题

这是我的密码:

IdFtp1.Host := 'host';
  IdFtp1.Username := 'uname';
  IdFtp1.Password := 'pass';
  IdFtp1.Connect;
  IdFtp1.Put('test.txt');
  IdFtp1.Disconnect;

Indy Put方法有两个参数版本

试试这个

IdFtp1.Put('test.txt', 'remote-file.txt');

回复:你的补充问题
AWorkCount
提供到目前为止传输的总字节数,而不是总文件大小
OnWorkBegin
为您提供
AWorkCountMax
,它是要上载的总大小。使用AWorkCount和AWorkCountMax,你可以计算完成的百分比。是的,我算出来了!但我不明白如何解决问题的第一部分!什么是服务器软件和操作系统?它为文件名生成GUID是有原因的。你联系过网站管理员了吗?服务器是godaddy,操作系统是windows!如果你投了反对票,请写一个理由@谁曾投过反对票!你让我开心@Priyabrata很高兴我能help@mjn:此两参数版本的
TIdFTP.Put()
(实际上是一个具有3个可选参数的4参数版本)与Priyabrata已经使用的版本相同。第二个参数是可选的。如果未指定,则从第一个参数提取目标文件名。Priyabrata声称的最初症状不可能发生。例如,Indy不生成guid,即使是临时文件名也不生成(这
TIdFTP.Put()
无论如何都不会生成)。@mjn:唯一合理的结论是1)FTP服务器忽略了
TIdFTP
的指定文件名,并替换了自己的
{guid}.tmp
文件名;2) Priyabrata的FTP客户端忽略FTP服务器的指定文件名,并替换其自己的
{guid}.tmp
文件名;或者3)这不是Priyabrata的真实代码,可能他实际上使用的是
TIdFTP.StoreUnique()
,而不是
TIdFTP.Put()