IdFTP.put在用的时候发现只要写名字就好了,不要提供路径,那他是怎么在本地取得那一个文件的呢?
procedure Put(const ASourceFile: string; const ADestFile: string; const AAppend: boolean); overload; 
  上传文件至服务器
  属性说明:
const ASourceFile: string 
 将要被上传的文件
-----------这里只有文件名没有路径,那它是怎么取得到本地的文件啊?
const ADestFile: string = '' 
  服务器上的目标文件名
const AAppend: boolean = false 
  是否继续上传
  代码示例:
if IdFTP1.Connected then begin
if UploadOpenDialog1.Execute then try
IdFTP1.TransferType := ftBinary;
IdFTP1.Put(UploadOpenDialog1.FileName, ExtractFileName(UploadOpenDialog1.FileName));
//可以在此添加改变目录的代码;
finally
//完成清除工作
end;
end; 

解决方案 »

  1.   

    ASourceFile可以只有文件名(当前目录),也可以是一个包含完全路径文件名
      

  2.   

    当前目录,是指的什么?他从哪里得到当前目录,我看IdFTP和OpenDialog也没有关联上,那要是有两个OpenDialog它要认为哪一个?他是怎么得到当前目录的?
      

  3.   

    我再次试验了一下,弄了那个OpenDialog,先第一个打开,取到文件,再用第二个打开另一个目录,发现FTP报错,说找不到文件。看样子OpenDialog执行后会给程序留下一个目录。而IDFTP。put的时候会自动从程序中获取该目录。