php操作ftp上传文件、创建目录、删除文件、删除目录、下载文件到本地

  1. <?php  
  2.   
  3. $host = 'xxx';  
  4. $user = 'user';  
  5. $pwd = '123';  
  6. $con = ftp_connect($host);  
  7. $login = ftp_login($con,$user,$pwd);  
  8. if($login){  
  9.     echo "ftp链接成功!<br/>";  
  10.     }  
  11.   
  12. $file1="baaa.doc";    
  13. echo ftp_put($con,$file1,"2222/aaa.doc",FTP_BINARY);//file1shi ftp的路径   第二个参数是当前服务器上的路径  2222/aaa.doc是本地的路径  
  14. echo  "<br>";  
  15. $file2="测试aaa.doc"//中文也是好使的  
  16. echo ftp_put($con,$file2,"2222/测试.doc",FTP_BINARY);//file1shi ftp的路径   第二个参数是当前服务器上的路径  2222/aaa.doc是本地的路径  
  17. echo  "<br>";  
  18.     $path="444/555";//创建目录只能一层一层的创建  
  19.     $dir=explode("/"$path);   
  20.     $path="";   
  21.    for ($i=0;$i<count($dir);$i++)   
  22.    {   
  23.        $path.="/".$dir[$i];   
  24.        echo $path."<br>";   
  25.        if(!@ftp_chdir($con,$path)){   
  26.          @ftp_chdir($con,"/");   
  27.          if(!@ftp_mkdir($con,$path)){   
  28.           $ret=false;   
  29.           break;   
  30.          }   
  31.        }   
  32.    }   
  33.   
  34.    ftp_put($con,"eee.doc","2222/aaa.doc",FTP_BINARY);//file1shi ftp的路径   第二个参数是当前服务器上的路径  此时放到了555下面  
  35.    // echo ftp_pwd($con)."<br>";//当前目录名  
  36.    //exit;  
  37.     @ftp_chdir($con,"../");   
  38.   ftp_put($con,$file1,"2222/aaa.doc",FTP_BINARY); //附件放到了444里面    FTP_ASCII  
  39.   //把当前目录切换为父目录  
  40.     ftp_cdup($con);  //回到了上一级目录  默认的是share下  
  41.     ftp_put($con,"ccc.doc","2222/aaa.doc",FTP_BINARY); //附件放到了444里面   
  42.      @ftp_chdir($con,"444"); //进入到了444目录  
  43.      //文件下载  
  44.     ftp_get($con,"2222/aaa1.doc""baaa.doc", FTP_BINARY);//第一个是本地   第二个是ftp的路径文件  
  45.      @ftp_chdir($con,"555");//进入555  
  46.      ftp_delete($con,"eee.doc"); //删除文件是好使的  
  47.      ftp_cdup($con);   
  48.      ftp_rmdir($con,"555");  //删除目录  
  49.     echo ftp_pwd($con)."<br>";//当前目录名  
  50.     //http://www.w3school.com.cn/php/php_ref_ftp.asp  
  51.   
  52.   ftp_close($con);  
  53.   
  54.   
  55.   
  56. ?>  
  57. </body>  

  1. </html>  

ftp效率不是很高,推荐使用curl
function file_upload($ftpIp,$ftpUser,$ftpPwd,$path,$fileSavePath){
  $curlobj = curl_init();//初始化
  //传入ftp的目标文件,如'ftp://192.168.3.1/test/1.jpg'
  curl_setopt($curlobj,CURLOPT_URL,"ftp://".$ftpIp."/".$path);
  curl_setopt($curlobj,CURLOPT_HEADER,0);//不输出header
  curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,0);
  //time out after 300s 
  curl_setopt($curlobj,CURLOPT_TIMEOUT,2000);//超时时间
  //通过这个函数设置ftp的用户名和密码,没设置就不需要! 
  curl_setopt($curlobj,CURLOPT_USERPWD,$ftpUser.':'.$ftpPwd);
 
  $outfile = fopen($fileSavePath,'w+'); //保存到本地文件的文件名 
  curl_setopt($curlobj,CURLOPT_FILE,$outfile);
 
  $rtn = curl_exec($curlobj);
  if(curl_errno($curlobj)){
    writeLog('Curl error: ' . curl_error($curlobj));
  }
  fclose($outfile);
  curl_close($curlobj);
   if($rtn == 1){
    return true;
   }else{
    unlink($fileSavePath);//如果下载失败,但是本地open了这个文件,所以要删除
    return false;
   }
 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值