traitement de l'upload d'une image

traitement de l'upload d'une image - PHP - Programmation

Marsh Posté le 08-10-2007 à 17:31:14    

Bonjour,
j'ai un une fonction qui me permet d'uploader des images, ca marche tres bien sauf que je voudrais qu'elle soit traité non pas sur la page qui suit le formulaire d'upload mais encore une page apres. CAD que j'ai une page avec mon formulaire, puis une page de recap. avec toute mes données que j'ai stocké dans une session puis seulement apres une page de traitement.
comment vais je faire alors avec

Code :
  1. <? $_FILES['image_upload']['tmp_name'] ?>


 
merci devotre aide
 
voici ma fonction :

Code :
  1. <?
  2. function copie($fname,$nom_photo)
  3. {
  4. $info=getimagesize($fname);
  5. if($info[2] == 2)
  6. {
  7.  $w=$info[0];
  8.  $h=$info[1];
  9. //*****************************************************
  10. $largeur='185';
  11. $hauteur='125';
  12. }
  13.  
  14. //_____________________________________________________
  15.  
  16.  
  17.  $im = imagecreatefromjpeg($fname);
  18. //_________________grande image ________________________
  19.  $im2 = imagecreatetruecolor ($largeur, $hauteur);
  20.  imagecopyresampled($im2, $im, 0, 0, 0, 0, $largeur, $hauteur, $w, $h);
  21.  $rep_promos='medias/images/promos/';
  22.  $chemin=$rep_promos.$nom_photo;
  23.  
  24.  imagejpeg($im2,$chemin,60);
  25.    
  26. //_______________________________________________________
  27.  imagedestroy($im);
  28. //si l'image est bien du jpg  
  29. }
  30. else
  31. {
  32.  echo"Format " . $info[2] . " non pris en charge. Merci de convertir l'image en jpg avant de recommencer.\n";
  33. }
  34. }
  35. if (($action !="supp_image" )&&($action !="supp_image_accueil" )){
  36. if (isset($nom_photo))$image=$nom_photo;
  37. else{
  38.  if (isset($_POST['image']))$image= $_POST['image'];
  39.   else $image='';
  40.  }
  41.  }
  42. else $image=$_GET['image'];
  43. if ($action =="ajouter"|| $action =="modifier" )
  44. {
  45. if(!isset($_POST['image'])){
  46. if(file_exists($_FILES['image_upload']['tmp_name'])&&(!isset($_POST['image'])))
  47. {
  48.  @copie($_FILES['image_upload']['tmp_name'],$nom_photo);
  49. }}}
  50. ?>


Message édité par attentio le 08-10-2007 à 17:34:55
Reply

Marsh Posté le 08-10-2007 à 17:31:14   

Reply

Marsh Posté le 08-10-2007 à 18:44:22    

Pour faire court : tu peux pas.
Pour faire un peu plus long : il va falloir que tu copies le fichier dans un répertoire temporaire au niveau de la page de récapitulation et que tu notes quelque part (session, dans le formulaire de la page de récap, ...) quel fichier correspond à quel visiteur. Ensuite dans la page suivante tu récupères le fichier que t'as mis dans le répertoire temporaire et tu le copies (ou le déplace) où t'as besoin.
A noter qu'il faudra aussi que tu supprimes les fichiers périmé (par exemple ceux qui datent d'il y a 12, 24 ou 48 heures) sous peine de voir grossir exagérément le répertoire temporaire.

Reply

Marsh Posté le 09-10-2007 à 09:44:41    

merci pour ta réponse ...  
et une fois que mon image sera uploadée dans le repertoire temporaire comment vais je faire pour le copier dans le repertoire definitif ?
 
merci de votre aide

Reply

Marsh Posté le 09-10-2007 à 10:22:47    

Reply

Marsh Posté le 09-10-2007 à 12:29:50    

ok .. merci beaucoup !
et pour vider automatiquement toutes les 48heures le repertoirre temporaire, comment dois-je m'y prendre ?
 
merci encore  :jap:

Reply

Marsh Posté le 09-10-2007 à 14:06:47    

Pour ça, soit tu le fais à chaque fois que quelqu'un uploade une image, soit tu utilises un logiciel qui lancera le script à heure régulière (ou tu utilises un site web qui appellera une page web à heure régulière comme cron.hiwit.org/ ou www.webcron.org/ ou autres du genre)
Pour savoir quels fichiers supprimer, tu regardes la date de dernière modification du fichier (voir doc de php) et tu utilises la fonction unlink (voir doc aussi)

Reply

Marsh Posté le 09-10-2007 à 14:17:38    

Ben...supprime la photo après l'avoir copiée du rep temporaire...! Ca t'évite de planifier un nettoyage..


---------------
Fred => http://www.meance.free.fr
Reply

Marsh Posté le 09-10-2007 à 14:45:36    

Non, parce que si le type décide de fermer ça fenêtre (par exemple) avant d'avoir validé l'étape suivante, on se retrouve forcément avec une image dans un répertoire temporaire qui devrait être supprimée.

 

Mais impossible de savoir si vraiment l'utilisateur en question a quitté ou s'il est parti chercher un café (surtout qu'il faudrait que quelque chose déclanche une vérification). Raison pour laquelle omega2 propose un néttoyage régulier pour les fichiers datant de plus de x heures (durée à partir de laquelle on peut considérer qu'il n'est plus nécessaire de les conserver).

 

Sinon, oui il est évident que lorsque le type valide tout : on copie l'image dans le répertoire final et on supprime celle du répertoire temporaire.


Message édité par dwogsi le 09-10-2007 à 14:50:49

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed