我可以使用以下方法直接下载数据库转储:
$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);