领悟旧事

Learned Helplessness
分类新闻>>生活领悟>>
XE10 C++Builder 采用FTP上传文件
来源:http://www.xx0594.com/
时间:2023-8-4
作者:  浏览人数:452
/采用FTP上传文件sFile为本地文件,如sFile="Reading.db";sToDir为服务器文件,包含路径,如"/upload/MyReading.db"
//如果目标sToDir不包含路径,将直接传到根目录下。sToDir="MyReading.db"。
bool FtpFile(AnsiString sFile,AnsiString sToDir)
{
 bool bFTP=true;
 if(!TFile::Exists(sFile)) return false;
 AnsiString sServeDir="/",sServeFile;
 if(sToDir.AnsiPos("/")>0){
  sServeFile=ExtractFileName(sToDir);//获取文件名 C:/ucods/d.doc-->d.doc
  sServeDir=StringReplace(sToDir, "/"+sServeFile,"", TReplaceFlags() <<rfReplaceAll<< rfIgnoreCase);//这是路径
 }else{
  sServeFile = sToDir;
 }
 TIdFTP *IdFTP=new TIdFTP();
 IdFTP->Host = "112.124.XX.XX"; //FTP服务器地址
 IdFTP->Passive=true;//如果不用这句,会出现“server cannot accept argument”的错误。
 IdFTP->Username= "UserName"; //FTP服务器用户名
 IdFTP->Password = "Passwords"; //FTP服务器密码
 IdFTP->Port=21;
 try{
  IdFTP->Connect();  //连接到ftp
  IdFTP->ChangeDir(sServeDir); //进入到client子目录
  IdFTP->Put(sFile,sServeFile);
 }catch(...){
  bFTP=false;
 }
 delete IdFTP;
 return bFTP;
}

//---------------------------------------------------------------------------
 

关闭窗口
 访问量:519314
任何第三方若要引用、转摘本站信息,均需征得本站书面同意,否则视为侵权。本站信息为个人观点,若因引用本站信息而产生的任何情况,均与本站无关。Email:linmutou@163.com
闽ICP备14017840号-2