Encontre el siguiente script que sube directorios via FTP, pero resulta que me sube bien los directorios pero los ficheros se encuentran vacios.
codigo:
Código PHP:
function leerCarpeta($path)
{
$dh = opendir($path);
$vCarpeta = array();
$i=1;
while (($fichero = readdir($dh)) !== false)
{
if(!(preg_match('/^.{1,2}$/',$fichero)||preg_match('/^.svn[a-z,0-9]*$/',$fichero)))
{
if(is_dir($path.'/'.$fichero))
{
$vCarpeta[$fichero] = leerCarpeta($path.'/'.$fichero);
}
else
{
$vCarpeta[] = $fichero;
echo "leyendo fichero...".$i."vez...";
}
$i++;
}
}
return $vCarpeta;
}
# Función recursiva que sube todos los ficheros de un directorio y crea los directorios del mismo.
function subirCarpeta($vCarpeta, $path_remoto, $path_local, $ftpID)
{
foreach($vCarpeta as $campo=>$valor)
{
if(is_array ($valor))//si valor esta en arreglo significa que es un directorio
{
// Creamos un directorio
ftp_mkdir($ftpID, $path_remoto.'/'.$campo,0777);
subirCarpeta($valor, $path_remoto.'/'.$campo, $path_local.'/'.$campo, $ftpID);
}
else
{
// Subimos el fichero
echo "subiendo ..............";
ftp_put($ftpID, $path_remoto.'/'.$valor, $path_local.'/'.$valor, FTP_ASCII);
}
}
}
$ftpID = ftp_connect('myhost.com');
ftp_login($ftpID,'user@myhost','pass');
$path_local = "/home/prueba";
$path_remoto = '/prueba/';
ftp_mkdir($ftpID, $path_remoto);
$vCarpetas = leerCarpeta($path_local);
subirCarpeta($vCarpetas, $path_remoto, $path_local, $ftpID);
ftp_close($ftpID);
a que se debera esto?