2015-04-02 1 views
2

Je crée deux fichiers gzip, un qui ne contient qu'un seul membre gzip, où le second contient 2 membres gzip (deux fichiers concaténés dans un fichier gzip unique).Chrome ne pas décompresser le fichier gzip si le fichier gzip a été créé en combinant plusieurs fichiers gzip

Lorsque j'essaie de télécharger cela via un serveur Web, chrome décompresse le premier fichier et affiche le contenu tel quel. Mais lors du téléchargement du second fichier, le chrome ne semble décompresser que le premier membre et le second membre est laissé non compressé.

J'ai essayé d'ouvrir le second fichier en utilisant 7zip et j'ai vérifié que le contenu est correct.

Ci-dessous le code que je utilise pour générer les deux fichiers dans 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(); 

Toute idée comment je peux obtenir le chrome pour décompresser tout le second fichier?

Merci.

+0

Les fichiers gzip ne sont pas vraiment destinés à contenir plus d'un fichier, vous ne voulez pas produire un fichier zip à la place? –

+0

J'ai un gros fichier gzip et un petit fichier gzip. Je veux les fusionner ensemble avant de les donner à l'utilisateur sous forme de fichier unique (concaténé). Je ne veux pas décompresser les deux et les ajouter ensemble pour générer un nouveau fichier. –

+0

Je comprends que vous l'avez fait, mais ce n'est généralement pas fait, car peu de programmes comprendront cette partie, ils s'arrêteront généralement après la décompression du premier fichier. Obtenir du chrome pour changer va être difficile, il est plus facile de changer votre propre programme, c'est donc mon conseil. –

Répondre

0

Bien que RFC 1952 spécifie que "Un fichier gzip se compose d'une série de" membres "(ensembles de données compressés).", et bien que gzip décode correctement ces flux, les navigateurs ne sont généralement pas conformes à la norme et ne décodent que le premier membre.