Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1320 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  zipper des fichiers en php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

zipper des fichiers en php

n°1410923
freed102
Arayashiki
Posté le 21-07-2006 à 11:00:32  profilanswer
 

bonjour à tous,  
comme indiqué dans le titre, je cherche à zipper des fichiers avec php... j'ai une petite idée de comment faire (utiliser des commandes unix genre exec("gzip... " ); ou je ne sais pas quoi) mais je voulais savoir si il existe un moyen plus optimal pour faire ça...
 
merci d'avance
 
Freed

mood
Publicité
Posté le 21-07-2006 à 11:00:32  profilanswer
 

n°1410938
zapan666
Tout est relatif
Posté le 21-07-2006 à 11:15:07  profilanswer
 

il existe une lib pour zipper des fichiers en php mais...je ne sais plus le nom :sweat:


---------------
my flick r - Just Tab it !
n°1410946
anapajari
s/travail/glanding on hfr/gs;
Posté le 21-07-2006 à 11:22:32  profilanswer
 
n°1411018
freed102
Arayashiki
Posté le 21-07-2006 à 12:44:39  profilanswer
 

oui j'ai vu le zip.lib.php entre temps... mais le probleme c que le fichier s'affiche avec un header()... moi j'aimerai que le fichier se créé physiquement sur le serveur et faire un lien dessus.. comment faire ??
 
pour l'instant j'ai fait ça :
 

Code :
  1. if($zip_month)
  2. {
  3. if(!empty($_POST['year']))
  4. {
  5. $_SESSION['selected_year']=$_POST['year'];
  6. }
  7. else
  8. {
  9. $_SESSION['selected_year']=date("Y" );
  10. }
  11. $_SESSION['selected_month']=$_POST['mois'];
  12. $_SESSION['selected_date1']=mktime(0, 0, 0, $_SESSION['selected_month'], 1, $_SESSION['selected_year']);
  13. $_SESSION['selected_date2']=mktime(23, 59, 59, $_SESSION['selected_month']+1, 0, $_SESSION['selected_year']);
  14. $sql="SELECT * FROM factures WHERE type='factures' AND date_reg BETWEEN '$_SESSION[selected_date1]' AND '$_SESSION[selected_date2]' ORDER BY numero_facture DESC";
  15. $query=mysql_query($sql) or die(mysql_error());
  16.  
  17.      
  18.     // création d'un objet 'zipfile'
  19.     $zip = new zipfile();
  20.     // ajout du fichier dans cet objet  
  21. while($data=mysql_fetch_array($query))
  22. {
  23. $filename="factures/".$data['numero_facture'].".pdf";
  24. if(file_exists($filename))
  25. {
  26.     $fp = fopen ($filename, 'r');
  27.     $content = fread($fp, filesize($filename));
  28.     fclose ($fp);
  29.     $zip->addfile($content, $filename);
  30. }
  31. }
  32.     // production de l'archive' Zip
  33.     $archive = $zip->file();
  34.     // entêtes HTTP
  35.   //  header('Content-Type: application/x-zip');
  36.     // force le téléchargement
  37.   //  header('Content-Disposition: inline; filename=factures/$zip_month.zip');  
  38.     // envoi du fichier au navigateur
  39.     echo $archive;
  40. }


Message édité par freed102 le 21-07-2006 à 12:46:23
n°1411028
zapan666
Tout est relatif
Posté le 21-07-2006 à 12:55:08  profilanswer
 

a la place de  

Code :
  1. echo $archive;


tu ecris sur le disque

Code :
  1. file_put_contents('monfichier.zip', $archive);


---------------
my flick r - Just Tab it !
n°1411041
freed102
Arayashiki
Posté le 21-07-2006 à 13:06:16  profilanswer
 

ah je vais essayer ça !! merci ! :) :jap:

n°1411045
freed102
Arayashiki
Posté le 21-07-2006 à 13:09:47  profilanswer
 

alors il me met ça : Fatal error: Call to undefined function: file_put_contents() in /u/clonecop/public_html/php/admin/valid.php on line 45
 
visiblement c du php5
 
file_get_contents ?

Message cité 1 fois
Message édité par freed102 le 21-07-2006 à 13:10:42
n°1411047
freed102
Arayashiki
Posté le 21-07-2006 à 13:12:03  profilanswer
 

j'ai trouvé ça :
 

Code :
  1. if(!function_exists('file_put_contents')) {
  2. function file_put_contents($filename, $data, $file_append = false) {
  3.   $fp = fopen($filename, (!$file_append ? 'w+' : 'a+'));
  4.   if(!$fp) {
  5.    trigger_error('file_put_contents ne peut pas écrire dans le fichier.', E_USER_ERROR);
  6.    return;
  7.   }
  8.   fputs($fp, $data);
  9.   fclose($fp);
  10. }
  11. }

n°1411050
zapan666
Tout est relatif
Posté le 21-07-2006 à 13:15:47  profilanswer
 

freed102 a écrit :


visiblement c du php5


a oui effectivement
http://uk2.php.net/manual/en/funct [...] ntents.php


---------------
my flick r - Just Tab it !
n°1411052
freed102
Arayashiki
Posté le 21-07-2006 à 13:16:47  profilanswer
 

ça a l'air de marcher mais j'ai une erreur :
 
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 286958 bytes) in /u/clonecop/public_html/php/admin/zip.lib.php on line 132

mood
Publicité
Posté le 21-07-2006 à 13:16:47  profilanswer
 

n°1411054
Hermes le ​Messager
Breton Quiétiste
Posté le 21-07-2006 à 13:18:26  profilanswer
 

freed102 a écrit :

ça a l'air de marcher mais j'ai une erreur :
 
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 286958 bytes) in /u/clonecop/public_html/php/admin/zip.lib.php on line 132


 
C'est sur ton propre serveur ?

n°1411055
freed102
Arayashiki
Posté le 21-07-2006 à 13:19:42  profilanswer
 

non c chez model-fx
je viens d'essayer un ini_set (merci google) mais je sais pas quoi mettre comme valeur

n°1411058
Hermes le ​Messager
Breton Quiétiste
Posté le 21-07-2006 à 13:23:50  profilanswer
 

freed102 a écrit :

non c chez model-fx
je viens d'essayer un ini_set (merci google) mais je sais pas quoi mettre comme valeur


 
memory_limit
 
:o
 
et si ça marche pas, c'est DTC. Fallait prendre un hébergeur sérieux. :o

n°1411062
freed102
Arayashiki
Posté le 21-07-2006 à 13:27:16  profilanswer
 

j'ai fait ça ini_set("memory_limit",'64M');
 
mais j'ai toujours des erreurs :
 
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 285435 bytes) in /u/clonecop/public_html/php/admin/zip.lib.php on line 132

n°1411065
Hermes le ​Messager
Breton Quiétiste
Posté le 21-07-2006 à 13:32:48  profilanswer
 

freed102 a écrit :

j'ai fait ça ini_set("memory_limit",'64M');
 
mais j'ai toujours des erreurs :
 
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 285435 bytes) in /u/clonecop/public_html/php/admin/zip.lib.php on line 132


 
oué, ben tu essayes d'augmenter encore plus, mais si ça ne marche pas, c'est que le memory_limit est vérouillé, et dans ce cas, tu peux strictement rien faire... Ben ouai, le mutualisé, c'est comme ça, c'est de l'hébergement de piètre qualité avec des features réduites. [:spamafote]

n°1411071
anapajari
s/travail/glanding on hfr/gs;
Posté le 21-07-2006 à 13:38:39  profilanswer
 

Mais il faut combien ton fichier zip  :??:  
Plus de 64Megas???


Message édité par anapajari le 21-07-2006 à 13:38:54
n°1411082
freed102
Arayashiki
Posté le 21-07-2006 à 13:49:38  profilanswer
 

bah il est pas lourd le fichier fini mais ya genre 80 fichiers pdf de 300ko à chaque fois

n°1411099
freed102
Arayashiki
Posté le 21-07-2006 à 14:09:30  profilanswer
 

Hermes le Messager a écrit :

oué, ben tu essayes d'augmenter encore plus, mais si ça ne marche pas, c'est que le memory_limit est vérouillé, et dans ce cas, tu peux strictement rien faire... Ben ouai, le mutualisé, c'est comme ça, c'est de l'hébergement de piètre qualité avec des features réduites. [:spamafote]


on ne peut rien faire avec le php.ini ?

n°1411201
Hermes le ​Messager
Breton Quiétiste
Posté le 21-07-2006 à 20:20:30  profilanswer
 

freed102 a écrit :

on ne peut rien faire avec le php.ini ?


 
Si tu as pas accès au serveur, t'as pas accès au php.ini :o

n°1411206
flo850
moi je
Posté le 21-07-2006 à 20:51:40  profilanswer
 

dans tous les cas , si tu as acces au php.ini , il y a 3 variables a toucher   :memory_limit   post_max_size et http_mx_size ( ou des trucs du genre , je te les retrouverai lundi matin si tu veux )  
 
avec obligatoirement http_max_size < post_max_size < memory_limit

n°1411304
freed102
Arayashiki
Posté le 22-07-2006 à 02:01:29  profilanswer
 

si j'ai acces au php.ini ... l'administrateur m'y a donné acces sur le root du site

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  zipper des fichiers en php

 

Sujets relatifs
Comportement fichiers temporaires apres uploaduploadé pleins de fichiers en meme temps
Collection d'Objet en php + gérer ordre de fichiers sur le serveur ?Problème fichiers temporaires
requête sql sur fichiers dBase à partir d'excelOuverture de fichiers automatique après recherche !
[C] Boucle avec strcat pour créer plusieurs fichiersZipper fichiers sans recup chemin d'accès
Zipper des fichiers sous delphiZipper des fichiers à partir de VB ?
Plus de sujets relatifs à : zipper des fichiers en php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR