好吧,我真的不想再浪费时间调查这个问题,但我确实想提供一个 .tar 选项供下载,而不仅仅是 zip。
$archive = "/home/stevenbu/public_html/temp/".$twitter_name.".tar";
$directory = "/home/stevenbu/public_html/temp/".$twitter_name;
exec("tar -cf $archive $directory");
问题是,当我提取 .tar 时,它有 5 个文件夹深,我不希望有文件夹,而只希望有 .tar 中的文件
非常感谢
答案1
距离我上次使用 php 已经有一段时间了,但是
exec("cd /home/stevenbu/public_html/temp/;tar -cf $archive $directory");
将有助于 shell。
答案2
$parent = "/home/stevenbu/public_html/temp";
$dir = $twitter_name;
$archive = $twitter_name.".tgz";
exec('tar -cz -f '.escapeshellarg($archive).' -C '.escapeshellarg($parent).' '.escapeshellarg($dir));
这个稍微好一点,因为它将文件.tar.gz
直接输出到浏览器,而不是创建临时文件:
$parent = "/home/stevenbu/public_html/temp";
$dir = $twitter_name;
$archive = $twitter_name.".tar.gz";
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.addslashes($archive).'"');
passthru('tar -cz -C '.escapeshellarg($parent).' '.escapeshellarg($dir));