PHP: как заархивировать папку и отправить ее напрямую клиенту с помощью passthru?

Я могу напрямую загрузить дамп базы данных, используя:

$filename = $database . '-' . date("d-m-Y_(G_i_s)") . ".sql.gz";
$mime = "application/x-gzip";


header("Content-Type: " . $mime);
header('Content-Disposition: attachment; filename="' . $filename . '"');


$cmd = "mysqldump --opt -h $host -u $username -p$password $database";


passthru($cmd);
exit(0);

Могу ли я сделать это с помощью файла .tar из каталога? Просто сгенерировать файл и скачать его, не сохраняя на сервере?

Я могу выполнить это (и файл правильный):

exec('tar -czf /path/download/backup.tar.gz /path/download/');

Но я не хочу хранить файл резервной копии на сервере... Я хочу загрузить его напрямую. Я попытался сделать что-то вроде моего примера с дампом базы данных... но безуспешно.

Любые идеи, как это сделать?

РЕДАКТИРОВАТЬ:

Спасибо за помощь. Удаление -f было хорошей идеей.

Теперь это работает:

$filename = 'download-' . date("d-m-Y_(G_i_s)") . ".tar.gz";
$mime = "application/x-tgz";


header("Content-Type: " . $mime);
header('Content-Disposition: attachment; filename="' . $filename . '"');
$cmd = "tar -cz " . $_SERVER['DOCUMENT_ROOT'] . "/download/";

passthru($cmd);
exit(0);

person M4ciek    schedule 18.11.2013    source источник
comment
Не указывайте флаг имени файла -f, тогда tar отправляет его прямо на стандартный вывод, что подходит для passthru().   -  person mario    schedule 19.11.2013
comment
возможный дубликат создания tar-файла GZipped и динамического транслировать через PHP?   -  person mario    schedule 19.11.2013
comment
OMG спасибо :) удаления -f было достаточно. Еще один вопрос - как я могу установить структуру каталогов в файле tar.gz? Теперь я получаю полный путь с home/user/domains/domain.pl/public_html... Я бы хотел, чтобы в мою команду были включены только файлы из папки.   -  person M4ciek    schedule 19.11.2013
comment
$cmd = "tar -cz -C " . $_SERVER['DOCUMENT_ROOT'] . " download"; опция -C эквивалентна предварительному переходу в указанный каталог.   -  person Sammitch    schedule 19.11.2013