我正在创建两个gzip文件,一个只包含一个gzip成员,其中第二个包含2个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解压缩整个第二个文件吗?
谢谢。
答案 0 :(得分:0)
虽然RFC 1952指定" gzip文件由一系列"成员"组成。 (压缩数据集)。" ,虽然gzip正确解码了这些流,但浏览器通常不符合标准,只会解码第一个成员。