8791 sujets

Développement web côté serveur, CMS

Salut a tous,

J'ai un probleme lorsque j'essaye de dezipper un fichier cote serveur: zip_open renvoit systematiquement une erreur (que je n'ai pas reussi a identifier) empechant la decompression du fameux fichier.

voila le code de mon fichier unzip.php :


<?php
function Unzip($file, $path='')
{
	$nbfiles = 0;
	$zip = zip_open($file);
	if ($zip)
	{
		while ($zip_entry = zip_read($zip))
		{
			if (zip_entry_filesize($zip_entry) > 0)
			{
				$fullpath = $path.dirname(zip_entry_name($zip_entry));

				$filename = zip_entry_name($zip_entry);
				$filename = strtr($filename, "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn");
				$filename = strtolower($filename);
				$filename = ereg_replace('[^a-zA-Z0-9.]','-',$filename);

				$fullfilename = $path.$filename;

				if(!file_exists($fullpath))
				{
					$tmp = '';
					foreach(explode('/',$fullpath) as $k)
					{
						$tmp .= $k.'/';

						if(!file_exists($tmp))
						{
							mkdir($tmp, 0777);
							echo '<li>R&eacute;pertoire: '.$filename.'</li>';
						}
					}
				}

				if (zip_entry_open($zip, $zip_entry, "r"))
				{
					$fd = fopen($fullfilename, 'w');

					fwrite($fd, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)));

					fclose($fd);
					zip_entry_close($zip_entry);

					echo '<li>Fichier: '.$fullfilename.'</li>';
					$nbfiles += 1;
				}
			}
		}

		zip_close($zip);
	}
	else
	{
		echo '<p>Erreur : impossible d\'ouvrir le fichier <strong>'.$file.'</strong>!</p>';
	}

	echo '<p>'.$nbfiles.' fichiers d&eacute;compress&eacute;s.</p>';		
}

$f = $_GET['file'];
$p = $f.'_UNCOMPRESSED/';

Unzip($f, $p);
?>


et je l'utilise par le biais d'un lien du type :


<a href="unzip.php?file=root/test.ZIP'">[d&eacute;compresser]</a>


(le fichier root/test.ZIP existant bien ^^)

J'ai tout essaye (ajouter des get_cwd, etc) mais pourtant l'appel de mon code renvoit systematiquement "Impossible d'ouvrir le fichier root/test.ZIP..."

Quelqu'un peut me venir en aide ?

Merci Smiley lol
salut... Pas pu tout lire correctement.. Suis avec un smartphone....
Malgré tout ton erreur vient du chemin du fichier je pense.
Root est il à la même racine que ton script ?
d'ailleurs si je passe file avec un chemin absolu, ca deconne autant...
(unzip.php?file=http://www.domaine.fr/root/test.ZIP)
franchement, je ne comprends pas du tout...