【发布时间】:2013-09-03 21:21:24
【问题描述】:
我想在 PHP 中用 gzip 压缩一些文件..
当输出文件保存到文件中时,它会正常工作。打开文件时,它看起来像这样
但不是当输出作为字符串返回时..然后打开的文件看起来像这样..为什么tar文件显示在gzip文件中?
public function compress(){
if($this->stream){
return gzencode($this->data, 9);
}
else{
$gz = gzopen('test.tar.gz', 'w9');
gzwrite($gz, $this->data);
gzclose($gz);
}
}
标头与字符串输出一起发送到浏览器
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$filename.'"');
【问题讨论】:
-
我也试过了,并没有在 gzip 文件中创建 tar。
-
gzencode 生成 gzip 存档 (.gz) 而不是 gzip tar (.tar.gz)。您所拥有的是一个名称为 tar-19 的文件。您确定这些文件是由上述脚本生成的吗?
-
如何解决它,使文件作为字符串表现得像创建的文件?
标签: php gzip gzipstream