PHP: 使用CURL访问FTP

今天要做FTP上传。本想用PHP自带的FTP函数来实现,结果发现这个模块没有编译进来,重新编译PHP太麻烦,改用其他方式实现吧

 FTP上传
if (isset($_POST['Submit'])) {
    if (!empty($_FILES['upload']['name'])) {
        $ch = curl_init();
        $localfile = $_FILES['upload']['tmp_name'];
        $fp = fopen($localfile, 'r');
        curl_setopt($ch, CURLOPT_URL, 'ftp://ftp_user:ftp_password@ftp.domain.com/' . $_FILES['upload']['name']);
        curl_setopt($ch, CURLOPT_UPLOAD, 1);
        curl_setopt($ch, CURLOPT_INFILE, $fp);
        curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
        curl_exec($ch);
        $error_no = curl_errno($ch);
        curl_close($ch);
        if ($error_no == 0) {
            $error = 'File uploaded succesfully.';
        } else {
            $error = 'File upload error.';
        }
    } else {
        $error = 'Please select a file.';
    }
}
从FTP下载
$curl = curl_init();
$target_ftp_file = 'ftp://192.168.1.12:/filepath/target.txt'; //完整路径

curl_setopt($curl, CURLOPT_URL, $target_ftp_file);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_FTP_USE_EPSV, 0);
curl_setopt($curl, CURLOPT_TIMEOUT, 300); // times out after 300s
curl_setopt($curl, CURLOPT_USERPWD, "user_name:password"); //FTP用户名:密码// Sets up the output file
$target_path = './data';
if (is_dir($target_path)) {
    $outfile = fopen($target_path . '/' . dest . txt);
    curl_setopt($curl, CURLOPT_FILE, $outfile);
    $info = curl_exec($curl);
    fclose($outfile);
    $error_no = curl_errno($curl);
    curl_close($curl);
}
 
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值