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

  FORUM HardWare.fr
  Programmation
  PHP

  traitement de l'upload d'une image

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

traitement de l'upload d'une image

n°1620661
attentio
Posté le 08-10-2007 à 17:31:14  profilanswer
 

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
mood
Publicité
Posté le 08-10-2007 à 17:31:14  profilanswer
 

n°1620708
omega2
Posté le 08-10-2007 à 18:44:22  profilanswer
 

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.

n°1620825
attentio
Posté le 09-10-2007 à 09:44:41  profilanswer
 

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

n°1620868
omega2
Posté le 09-10-2007 à 10:22:47  profilanswer
 
n°1620974
attentio
Posté le 09-10-2007 à 12:29:50  profilanswer
 

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

n°1621017
omega2
Posté le 09-10-2007 à 14:06:47  profilanswer
 

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)

n°1621029
dzing35
Posté le 09-10-2007 à 14:17:38  profilanswer
 

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
n°1621062
dwogsi
Défaillance cérébrale...
Posté le 09-10-2007 à 14:45:36  profilanswer
 

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})/

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

  traitement de l'upload d'une image

 

Sujets relatifs
heberger une image sur un serveur diférent. risqué?[JS] Trouver la position du curseur sur une image
Recherche de composant HTML WYSIWYG + Image managerCode de de réduction image auto en HTML
fonction(quelle image est dans mon clip)Comment positionner un texte au dessus d'une image (CSS)
Cic sur image = Texte dans formulaire barréAjouter image dans un fichier pdf existant
min height + background image[RESOLU] Débutant VB - Ouvrir une image sous VB6
Plus de sujets relatifs à : traitement de l'upload d'une image


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