Do servidor dedicado podes enviar por ftp...
Mas queres que ele faça mesmo o quê? são muitos ficheiros? é uma pasta inteira? o que é?
Vou deixar aqui o script para poderes sacar ficheiro a ficheiro (.php incluídos)
<?php
/** Get file script V1.0 by anjo2 **/
ini_set('display_errors', '1');
error_reporting (E_ALL); // Report everything
function erro($text)
{
echo $text;
exit;
}
$file = (isset($_GET['file']) ? $_GET['file'] : erro("Please indicate the name of file using ?file=name_of_file"));
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Length: ' . filesize($file));
if(!readfile($file, 'r')) erro("Cannot open the file");
?>
Isso foi +- feito à pressa para um cliente, mas funciona.
Depois é preciso um que liste os ficheiros
<?php
/** Get file list script V1.0 by anjo2 **/
ini_set('display_errors', '1');
error_reporting (E_ALL); // Report everything
$dir = "./";
$subfolders = 1; // 1 - Search in subfolders | 0 - Only search in folder "$dir"
function list_dir($dir, $subfolders)
{
$listdir = scandir($dir);
$listdir = array_diff($listdir, array("..", "."));
foreach($listdir as $file)
{
if(is_dir($file))
{
if($subfolders)
{
$temp = list_dir($dir.$file."/", 1);
if(is_array($temp))
foreach($temp as $file_dir)
$ret[] = $file_dir;
}
}
else
{
$ret[] = $dir.$file;
}
}
return $ret;
}
$listdir = list_dir($dir, $subfolders);
foreach($listdir as $file)
echo $file."\n";
?>
E um que vá buscar a lista e os ficheiros um a um.
<?php
$stream = fopen("http://www.site.com/listfiles.php", "r");
$contents = stream_get_contents($stream);
$files = explode("\n", $contents);
foreach($files as $file)
{
$stream = fopen("http://www.site.com/getfile.php?file=".$file, "r");
$contents = stream_get_contents($stream);
$handle = fopen($file, "w");
fwrite($handle, $contents);
fclose($handle);
fclose($stream);
}
?>
Isto é muito estúpido ser assim, nem testei, foi feito à pressa.