2

PHPでいくつかのファイルをgzipで圧縮したい..

出力ファイルをファイルに保存すると、正常に機能します。ファイルを開くと、次のようになります。

ここに画像の説明を入力

しかし、出力が文字列として返される場合はそうではありません..すると、開いたファイルは次のようになります..gzipファイルの中にtarファイルが表示されるのはなぜですか?

ここに画像の説明を入力

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.'"');
4

3 に答える 3