php curl ftp 下载文件

php curl ftp 下载文件

不知道为什么用正常的ftp_get函数下载文件速度特别慢,但是用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;
     }

}

测试下载小文件是正常的,但是如果网速很慢,下载大文件时候,会报一个ftp timeout的错误,目前还在不知道是哪里配置问题,还是什么问题。

猜你喜欢

转载自blog.csdn.net/wodecc_u/article/details/72251497
今日推荐