desirelabs
1/28/2015 - 6:32 PM

cURL Ftp connexion

cURL Ftp connexion

<?php
$host = 'ftp://host.fr';
$login = 'login';
$pwd = 'pwd';
$distant = 'file_to_get';
$local = 'place_to_save_on_ftp';
try {
  $ch = curl_init();
  $localfile = $distant;
  $fp = fopen($localfile, 'r');
  curl_setopt($ch, CURLOPT_URL, 'ftp://'.$host.'/my-file.png');
  curl_setopt($ch, CURLOPT_FTP_CREATE_MISSING_DIRS, true);
  curl_setopt($ch, CURLOPT_USERPWD, "$login:$pwd");
  curl_setopt($ch, CURLOPT_UPLOAD, 1);
  curl_setopt($ch, CURLOPT_INFILE, $fp);
  // Cannot check filesize as it is a distant file
  //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.';
  }
} catch (Exception $e) {
  throw new Exception("Error Processing Request", $e->getMessage());  
}
?>