Compression Zip

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Compression Zip

par guilt92 » 16 juin 2006, 11:58

Pourquoi les chiffres ne pourraient pas fonctionner ?
Le problème ici est qu'il te faut une chaine de caractère pour la fonction fopen. En php comme tu ne déclares pas le type de variable si tu écris $filename = $list['id'] il va considérer que $filename est un entier sur lequel tu peux faire des opérations infaisables sur les chaines de caractère (exemple utiliser dans un for ou autre...). Apparemment meme en mettant un . après pour concaténer il ne considère pas cela comme une chaine, alors qu'en mettant $filename = "" il sait tout de suite que c est une chaine, donc après en concaténant on arrive au résultat souhaité ;)

par qmeuh » 16 juin 2006, 11:45

Ooooo ça marche :D
Quand même bizarre comme truc ... Pourquoi les chiffres ne pourraient pas fonctionner ?

Autre chose : Y a-t-il une limite de mémoire ?

par guilt92 » 16 juin 2006, 11:40

Peut etre que comme id est un nombre il ne le prend pas comme chaine de caractère. Je suis pas sur mais tu peux tester :
$filename = "".$list["id"].".jpg"; 
Aussi si tu n'utilises que list["id"] fait un SELECT id plutôt que * tu gagneras en performances...

par qmeuh » 16 juin 2006, 11:35

Si je le met dans la boucle il ne me retourne que le premier fichier JPEG de la requete ...
Si je le met après ... rien :P

par Mouet » 16 juin 2006, 11:26

Donc, la boucle tourne, ca te fais l'archive mais c'est simplement les fichiers qui ne sont pas "déterminés" correctement?

fais un peu un echo $contenu; pour voir ce que ca va te retourner.

par qmeuh » 16 juin 2006, 11:18

Aucune ... C'est bien ça le problème ... :(
J'obtiens une page blanche

J'ai par contre remarqué que si je change

$filename = $list['id'].'.jpg';

en

$filename = '1.jpg';

J'obtiens autant de fois le fichier 1.jpg dans mon archive que la boucle tourne pour ma requete ...

par Mouet » 16 juin 2006, 00:38

Quels sont les erreurs?

:roll:

Compression Zip

par qmeuh » 16 juin 2006, 00:06

Bonjour à tous !

J'ai utilisé le script des tutoriaux concerant la compression zip ... mais cela ne marche pas ... Ai-je fais une erreur ?
<?php 

if (isset ($_GET['id'])) {

require("zip.lib.php");
$zip = new zipfile();

$dbhost = 'localhost';
$dbname = '...';
$dbuser = '...';
$dbpasswd = '...';

mysql_connect($dbhost, $dbuser, $dbpasswd) or die('Erreur de connexion');
mysql_select_db($dbname) or die('Base inexistante');  

$sql = 'SELECT * FROM `site_feuilles` WHERE `fichier` = '.$_GET['id'].' ORDER BY `id` ASC';
$query = mysql_query($sql) or die('Erreur3'); 

while ($list = mysql_fetch_array($query)) {

	$filename = $list['id'].'.jpg';

	$fp = fopen($filename,'r') ;
	$contenu = fread($fp, filesize($filename)) ;
	fclose($fp) ;

	$zip->addfile($contenu, $filename) ;

}

mysql_close();

$archive = $zip->file();

header('Content-Type: application/x-zip'); 
header('Content-Disposition: inline; filename=makezip.zip');

echo $archive;

} else { header("Location: index.php"); exit(); }

?>
zip.lib.php
makezip.php
et les fichiers à compresser sont tous dans le même dossier !

Merci d'avance
QMeuh