2010-09-23 5 views
0

je crée une archive zip via php et une autre archive zip via winrar, mais à partir des mêmes fichiers.zip via php a une taille différente comme via winrar

La taille de deux archives est différente. celui via winrar est plus grand (2 octets).

pourquoi? Merci.

OK MAINTENANT. zip a été créé correctement en utilisant php.

problème

était que j'envoyais à l'aide

header('Content-Type: application/zip'); 
header('Content-disposition: attachment; filename='.$name); 
header('Content-Length: ' . filesize($name)); 

et ne pas y prendre ob_start(); et ob_end_clean();

qui est la raison pour laquelle la taille du fichier qui viennent par tête était différent .. En tout cas merci pour votre aide ;)

+0

Avez-vous fait une comparaison octet-sage des fichiers pour voir si la différence est cohérente? –

+0

Je ne comprends pas votre problème. Il n'y a rien de mal de taille différente - c'est normal. Et votre en-tête doit contenir la taille ** réelle **. –

Répondre

1

Pourrait être beaucoup de raisons. Mon pari, puisque ce n'est que 2 octets, c'est que winrar ajoute une marque d'identification spéciale à l'archive pour savoir que cela a été fait par winrar.

L'autre possibilité est que vous pouvez définir différents niveaux de compression, et votre fonction de fermeture de fichier php peut être réglée sur un taux de compression plus élevé. Soit ou pourrait être vrai, la seule façon de vraiment découvrir est d'utiliser un éditeur hexadécimal et d'examiner les deux fichiers et voir où la différence peut se trouver.

L'autre façon de vérifier est de compresser différentes tailles de fichiers (mais les mêmes fichiers) et de voir si la différence est toujours de deux octets. Si c'est toujours deux octets, bien winrar ajoute une marque d'identification. Si ce n'est pas le cas, eh bien, ce sont des taux de compression différents.

+0

problème est que je peux le décompresser en utilisant winrar. mais une autre personne a essayé de le décompresser et a reçu une erreur mesasge >> warning [pokus_php.zip]: 2 octets supplémentaires au début ou dans le zipfile (essayant de traiter quand même) j'ai essayé PHP ZIPARCHIVE et aussi une classe Zip Basé sur CreateZipFile de Rochak Chauhan .. je veux utiliser le fichier zip dans SCORM, le problème est que celui de php est mauvais, et celui de winrar est bon – mmmm

+0

Information qui est bon à publier au départ. Pouvez-vous s'il vous plaît poster l'ensemble du script que vous utilisez, car les deux octets supplémentaires pourraient être causés par des espaces. –

Questions connexes