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

  FORUM HardWare.fr
  Programmation
  PHP

  envoi d'un ZIP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

envoi d'un ZIP

n°1994822
mike0794
Posté le 20-05-2010 à 16:45:41  profilanswer
 

Bonjour,
 
J'ai écrit un script PHP qui compresse un dossier en archive .ZIP que je souhaite envoyer par la suite.
Toute cette partie fonctionne mais j'ai un problème quand je souhaite l'ouvrir il y a un message d'erreur qui me dit que le fichier est endommagé.
Par contre j'ai essayé sans les header et l'archive s'ouvre correctement en local mais j'ai quand même besoin des header.
 
Voici mon code php:


include('pclzip-2-5/pclzip.lib.php');
    $archive = new PclZip('datas.zip');
    $data = $archive->create($_COOKIE['dir']);
     
    header('Content-Type: application/zip');
    header("Content-length: ".filesize("datas.zip" ));
    header('Content-Disposition: attachment; filename="datas.zip"');
    header('Content-Transfer-Encoding: binary');  


$_COOKIE['dir'] correspond au répertoire à zipper.
 
Cordialement, mike0794.

mood
Publicité
Posté le 20-05-2010 à 16:45:41  profilanswer
 

n°1994843
rufo
Pas me confondre avec Lycos!
Posté le 20-05-2010 à 17:25:44  profilanswer
 

$_COOKIE['dir'], ça va pas correspondre à un dossier qui se trouve sur le poste client par hasard? Si oui, en local, ça peut fonctionner, mais après, non.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1994976
mike0794
Posté le 21-05-2010 à 09:32:30  profilanswer
 

En faite le problème ne vient pas de $_COOKIE['dir'] car il contient juste le nom du répertoire présent sur le serveur qu'il faut zipper.
Je pense que le problème vient surtout de l'envoi c'est à dire dans les header.
 
J'espère que j'ai bien expliqué mon problème, si vous avez une solution je suis preneur!
merci d'avance.

n°1995856
rufo
Pas me confondre avec Lycos!
Posté le 25-05-2010 à 13:29:25  profilanswer
 

Essayes sans les headers. Tu sauvegardes le fichier zip dans un répertoire temp et tu proposes à l'utilisateur un lien hypertexte pour télécharger le fichier zip généré. Si ça marche bien, c'est que ça vient du contenu des headers.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1996001
G31
Posté le 25-05-2010 à 16:21:45  profilanswer
 

Doit manquer des trucs...
http://www.commentcamarche.net/faq [...] ece-jointe
 
En gros faut prendre tout le contenu du fichier avec file_get_contents() et le mettre dans le mail.

n°1996053
erwan83
Du Shift DEL tu te méfieras !
Posté le 25-05-2010 à 17:59:02  profilanswer
 

haaaaaaaa
commentcamarche... Vade Retro !!!


---------------
https://www.oise-net-multiservices.com
n°1996155
rufo
Pas me confondre avec Lycos!
Posté le 26-05-2010 à 11:49:02  profilanswer
 

G31 a écrit :

Doit manquer des trucs...
http://www.commentcamarche.net/faq [...] ece-jointe
 
En gros faut prendre tout le contenu du fichier avec file_get_contents() et le mettre dans le mail.


 
sauf que c'est pas un envoi par mail qu'il veut faire mais proposer un fichier en téléchargement...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1996184
stealth35
Posté le 26-05-2010 à 14:00:56  profilanswer
 

bizarre ton truc, t'as rien mis après les headers ?

n°1996206
mike0794
Posté le 26-05-2010 à 14:56:05  profilanswer
 

C'est bon j'ai finalement trouvé une solution, je poste mon code avec des commentaires.

Code :
  1. include_once('pclzip-2-8-2/pclzip.lib.php');
  2. $archive = new PclZip('datas.zip');
  3. $archive->create($_COOKIE['dir']."/Diagramme" ); // premier dossier à ajouter à l'archive
  4. $archive->add($_COOKIE['dir']."/Donnees" );  // second dossier à ajouter
  5. rename("datas.zip",$_COOKIE['dir']."/datas.zip" ); // on déplace l'archive dans le dossier client
  6. header("Location: ".$_COOKIE['dir']."/datas.zip" ); // chemin du fichier zip

mike0794.

n°1996390
rufo
Pas me confondre avec Lycos!
Posté le 27-05-2010 à 11:10:11  profilanswer
 

Si je comprends bien ce que tu as fait, t'es passé par un fichier stocké sur le serveur avant envoi, comme je te l'avais conseillé dans mon 2ième post, c'est bien ça?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

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

  envoi d'un ZIP

 

Sujets relatifs
Envoi de mail et lien hrefEnvoi de formulaire vers sa messagerie outlook
formulaire d'envoi demail dans courrier indésirable hotmail[Résolu] Bloquer l'envoi d'un formulaire
J2ME + envoi de requetes POSTProblème d'envoi net send
Message d'alerte lors de l'envoi d'un mailbatch sftp pour recuperer fichier et envoi mail
php: envoi mail considéré comme du spamEnvoi de mail automatique avec pièce jointe
Plus de sujets relatifs à : envoi d'un ZIP


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)