note 102061 deleted from function.ftp-fput by danbrown
| From: | danbrown@php.net | Date: | Tue, 25 Jan 2011 20:08:45 +0000 |
| Subject: | note 102061 deleted from function.ftp-fput by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-176302@lists.php.net to get a copy of this message | ||
Note Submitter: Julien Laumond
----
daniel-marschall function don't clone the directory and subdirectories structure, this version
is functional on a windows php serveur.
Brutal but funccional...
I personaly use '/' as $origin, this may be dangerous if the user is not Locked in its
default directory... ROOT access :-{
<?php
function ftp_uploaddirectory($conn_id, $local_dir, $remote_dir)
{
global $origin;
ftp_mkdir($conn_id, $remote_dir);
ftp_chdir($conn_id, $remote_dir);
$handle = opendir($local_dir);
while (($file = readdir($handle)) !== false)
{
if (($file != '.') && ($file != '..'))
{
if (is_dir($local_dir.$file))
{
ftp_chdir($conn_id, $origin);
ftp_uploaddirectory($conn_id, $local_dir.$file.'/', $remote_dir.$file.'/');
}
else
$f[] = $file;
}
}
closedir($handle);
if (count($f))
{
sort($f);
ftp_chdir($conn_id, $origin);
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_cdup($conn_id);
}
$origin='THE currentdir of the $conn_id';
$conn_id = @ftp_connect($server);
@ftp_login ($conn_id, $user, $password);
ftp_pasv($conn_id, true);
ftp_uploaddirectory($conn_id, $local_dir, $remote_dir);
@ftp_quit($conn_id);
?>