Page 1 sur 1

Compression Gz d'un répertoire défectueuse

Posté : 18 juin 2010, 08:37
par Castor Gaspard
Bonjour,

Je voudrais proposer le téléchargement d'un fichier au format .Tart, à l'issue d'un traitement.

Or, malgré des dizaines de tests, je rencontre une erreur lors de la décompression du fichier sur mon ordinateur. J'obtiens le message (je suis sous Linux) :
gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now


Je suis surpris, car si je télécharge manuellement le .Gz, il se décompresse normalement.

Voici le code de ma page de téléchargement, appelée par un lien depuis la page principale : "<a href="download.php" title="télécharger le dossier avec les nouvelles images">Télécharger le dossier avec les nouvelles images</a>" ...
exec('tar -pczf pictures.tar.gz large/ medium/ small/'); // Je compresse les trois répertoires large, medium et small dans pictures
$file = 'pictures.tar.gz';
$name_file = 'pictures.tar.gz';
header('Content-disposition: attachment; filename='.$name_file);
header('Content-Type: application/force-download');
header('Content-Transfer-Encoding: file');
header('Content-Length: '.filesize($file));
header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
readfile($file);
Mes deux pages ont bien les droits à 755.

Merci pour votre aide. :mrgreen:

Cordialement,

Gaspard

Re: Compression Gz d'un répertoire défectueuse

Posté : 18 juin 2010, 09:56
par Lupuz
Quelle taille fait ton archive ? sur le serveur et une fois téléchargée ?

Re: Compression Gz d'un répertoire défectueuse

Posté : 18 juin 2010, 14:25
par Castor Gaspard
Bonjour,

Pour répondre à Lupuz, l'archive pèse sur le serveur 240,1 Kio (245841 octets). Après téléchargement, elle pèse 239,8 Kio (245536 octets).

Donc, en effet, il manquent 305 octets (!), qui doivent empêcher l'archive d'être décompressée sur mon poste de travail. :D

Mais où se perdent ces fameux octets, selon vous ?

Merci !

Gaspard

Re: Compression Gz d'un répertoire défectueuse

Posté : 18 juin 2010, 15:26
par stealth35
fais juste ca niveau des headers
header('Content-disposition: attachment; filename='.$name_file);
header('Content-Type: application/force-download');
readfile($file);

Re: Compression Gz d'un répertoire défectueuse

Posté : 18 juin 2010, 18:48
par Castor Gaspard
Merci, Stealth, ta suggestion fonctionne parfaitement.

Bien à toi,

Gaspard