Zipper un fichier à l'upload

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 : Zipper un fichier à l'upload

par Hermès » 22 avr. 2006, 10:18

Oui, oui, le but n'est pas de diminuer le transfert en zippant avant l'envoi mais de zipper immédiatement après réception.

En fait le problème c'est le remplacement du fichier initial par le fichier zippé.
Si je crée une fonction qui zip le fichier, à la place d'avoir
echo $archive;
faut-il que je fasse un
return $archive;
?

L'écriture du header ne risque-t-elle pas de me poser des problèmes ?

par Ryle » 21 avr. 2006, 14:55

Je suis pas certain d'avoir bien compris, mais tu ne peux zipper le fichier qu'une fois qu'il a été uploadé sur le serveur... par conséquent le transfert se fera forcément non zippé...

Quant au zippage, tu dois pouvoir le faire avant le move_upload, qui du coup ne devrait plus être utile puisque tu auras déjà stocké par ailleurs le fichier au format zippé...

Cela dit, c'est peut être quand même plus propre de déplacer le fichier pour ne pas qu'il reste dans la zone d'upload, et de le zipper tranquillement ensuite :)

Zipper un fichier à l'upload

par Hermès » 21 avr. 2006, 14:45

Bonjour,

J'ai actuellement un formulaire qui se charge de récupérer un fichier uploadé et je souhaiterais zipper ce fichier au moment de l'upload.

J'ai réussi à générer un fichier zip en me basant sur le tuto sur le site mais je n'arrive pas à le brancher sur la réception de mon fichier à la sortie du formulaire.

pour rappel, voici le code pour zipper un document :
<?php
require("zip.lib.php") ; //indiquez le chemin d'accès à la librérie

$zip = new zipfile() ; //on crée un fichier zip

$filename = 'test.txt' ;
$fp = fopen($filename,'r') ; //on ouvre le fichier en lecture seule
$contenu = fread($fp, filesize($filename)) ; //on enregistre le contenu
fclose($fp) ; //on ferme FTP

$zip->addfile($contenu, $filename) ; //on ajoute le fichier

$archive = $zip->file() ; //on associe l'archive

header('Content-Type: application/x-zip') ; //on détermine les en-tête
header('Content-Disposition: inline; filename=archive.zip') ;

echo $archive ;
?>
Sur une autre page, j'utilise cette méthode et j'ai placé un lien qui pointe sur ce fichier php, ça marche impecable.

Pour faire en sorte de zipper au moment du formulaire, y a-t-il des modifications à faire sur ce code ? comment appeler ce code ? faut-il l'appeler avant l'utilisation de move_uploaded_file() ou bien après ?

Merci d'avance pour votre aide.