Uploading a entire folder by FTP using Php


Php code to upload an entire folder via FTP


function ftp_uploaddirectory($conn_id, $local_dir, $remote_dir)
{

  ftp_mkdir($conn_id, $remote_dir);
  $handle = opendir($local_dir);
  while (($file = readdir($handle)) !== false)
  {
    if (($file != '.') && ($file != '..'))
    {
      if (is_dir($local_dir.$file))
      {
        ftp_uploaddirectory($conn_id, $local_dir.$file.'/',
$remote_dir.$file.'/');
      }
      else
        $f[] = $file;
    }
  }
  closedir($handle);
  if (count($f))
  {
    sort($f);
    @ftp_chdir($conn_id, $remote_dir);
    foreach ($f as $files)
    {
      $from = @fopen("$local_dir$files", 'r');
      @ftp_fput($conn_id, $files, $from, FTP_BINARY);
    }
  }
}

//FTP Login Detauls
$ftp_server = "127.0.0.1";
$ftp_user = "XXXXXXX";
$ftp_pass = "XXXXXXX";

// set up a connection or die
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to
$ftp_server");
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
    echo "Connected as $ftp_user@$ftp_server\n";
} else {
    echo "Couldn't connect as $ftp_user\n";
}
echo "Current directory: " . ftp_pwd($conn_id) . "\n";

//Directory details local dir files are to be uploaded to Remote dir
$local_dir='a1/';
$remote_dir='a2';

//Function for uploading directory
ftp_uploaddirectory($conn_id, $local_dir, $remote_dir);
This entry was posted on Tuesday, September 1st, 2009 at 10:40 pm and is filed under Php. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Post a Comment