我试图使用php
(和ajax
)创建tar
档案,并且它在解压时给我这个错误:"The tar archive is corrupt"
当档案大于2GB时。当档案小于2GB时一切正常。解压缩时tar档案损坏
这里是我的代码:
function download_files() {
set_time_limit(0);
ob_start();
$filename = "download.tar";
$path = "temp/$filename";
$files = '';
foreach($_GET['dfile'] as $file){
$files .= "$file ";
}
$cd_dir = FCPATH.'uploads';
system("cd $cd_dir && tar -cf $path $files");
header("Content-Transfer-Encoding: Binary");
header("Content-Length: ".filesize(FCPATH."uploads/$path"));
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$filename.'"');
ob_end_flush();
readfile(FCPATH."uploads/$path");
unlink(FCPATH."uploads/$path");
}
我试图消除ob_*
功能,这是无用的。
任何帮助,请:)在此先感谢。
的'tar -cf $路径$文件“'...这似乎是一个系统问题而不是一个编程问题 –
_“我尝试删除ob_ *函数并且它没用 - ” - 当它们没有实际输出并且只设置了标题时,输出缓冲开始时是无用的,至于这个问题,你有没有试过并打开过其中的一个在文本或十六进制编辑器中检查> 2GB文件以检查它们是否包含任何错误消息(来自PHP或命令行tar调用)? – CBroe
我试过,并没有错误信息 – mihaela