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:[email protected]/‘ . $_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); }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。