如果gzip文件是通过组合多个gzip文件创建的,Chrome不会解压缩gzip文件



我正在创建两个gzip文件,其中一个只包含一个gzip成员,其中第二个包含两个gzip成员(两个文件连接到一个gzip文件中)。

当我试图通过网络服务器下载这个文件时,chrome会对第一个文件进行解压缩,并按原样显示内容

但当下载第二个文件时,chrome似乎只解压缩第一个成员,而第二个成员则未压缩。

我尝试使用7zip打开第二个文件,并验证内容是否正常。

下面是我用来在C#中生成两个文件的代码

FileStream fileStream = new FileStream("D:\single_big_gzip.gz", FileMode.Create);
FileStream fileStream2 = new FileStream("D:\multiple_gzip_files.gz", FileMode.Create);
// Write to First file
GZipStream gzipStream = new GZipStream(fileStream, CompressionMode.Compress, false);
StreamWriter writer = new StreamWriter(gzipStream);
writer.WriteLine("hello world!");
writer.Flush();
gzipStream.Close();
fileStream.Close();
// write to second file
gzipStream = new GZipStream(fileStream2, CompressionMode.Compress, true);
writer = new StreamWriter(gzipStream);
writer.WriteLine("Hello world!");
writer.Flush();
gzipStream.Close();
gzipStream = new GZipStream(fileStream2, CompressionMode.Compress, true);
writer = new StreamWriter(gzipStream);
writer.WriteLine("Bye Bye Birdie!");
writer.Flush();
gzipStream.Close();
fileStream2.Close();

你知道我如何让chrome解压缩整个第二个文件吗?

谢谢。

尽管RFC 1952指定";gzip文件由一系列";成员";(压缩数据集)",尽管gzip可以正确地解码这些流,但浏览器通常不符合标准,只会解码第一个成员。

最新更新