begin process at 2012 02 13 03:05:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Renommer une image à l'upload


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Renommer une image à l'upload

lundi 29 juin 2009 à 16:00:21 | Renommer une image à l'upload

momoreira

Bonjour tout le monde, voila je vous explique mon problème. Je cherche à renommer une image lors de mon upload pour une galerie, jusque là rien de très compliqué, cependant voila le hic.
Ma galerie est toute simple avec une fonction Js qui consiste à dire que quand je clique sur l'image miniature, elle vient s'afficher en taille normale au centre de la page.
J'ai donc une fonction upload qui redimensionne l'image à la taille "normale" et j'ai essayé d'y ajouter en même temps la création et le redimmensionnement de cette même image mais à la taille "miniature".
J'ai dans mon dossier Galerie des images nommées image1.jpg, image1_reduit.jpg, image2.jpg, image2_reduit.jpg...etc...
Je cherche donc à renommer la seconde image miniature crée en y ajoutant "_reduit" à la fin de son nom mais je ne vois pas à quel moment le faire.

Voici un extrait de ma page: (chemin est le nom que j'ai attribué à mon "Parcourir" du formulaire =D)


<?php include("connexion.php");
      $titre = $_FILES['chemin']['name'];
      $chemin = $_FILES['chemin']['tmp_name'];
      $emplacement = "../Images/Site/Galerie/";

                if(!empty($chemin) AND is_uploaded_file($chemin))
                  {   
                    if(filesize($chemin)<2000000000)
                      { if(move_uploaded_file($chemin,$emplacement.$titre))
                          { $newchemin = $emplacement.$titre;
                            $newchemin2 = $emplacement.$titre.???;  C'est ici que je ne sais quoi mettre...
                            $file = $newchemin ;
                            $x = 448;
                            $y = 299;
                            $x2 = 120;
                            $y2 = 80;
                            $size = getimagesize($file);

                            if ($size) {
                                if ($size['mime']=='image/jpeg' ) {
                                    $img_big = imagecreatefromjpeg($file);
                                    $img_new = imagecreate($x, $y);
                                    $img_new2 = imagecreate($x2, $y2);
                          
                                    $img_mini = imagecreatetruecolor($x, $y)
                                    or   $img_mini = imagecreate($x, $y);
                                    $img_mini2 = imagecreatetruecolor($x2, $y2)
                                    or   $img_mini2 = imagecreate($x2, $y2);
                                  
                                    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
                                    imagecopyresized($img_mini2,$img_big,0,0,0,0,$x2,$y2,$size[0],$size[1]);

                                    imagejpeg($img_mini,$file );
                                    imagejpeg($img_mini2,$file );
                                }
                                elseif ($size['mime']=='image/png' ) {
                                    $img_big = imagecreatefrompng($file);
                                    $img_new = imagecreate($x, $y);
                                    $img_new2 = imagecreate($x2, $y2);
                            
                                    $img_mini = imagecreatetruecolor($x, $y)
                                    or   $img_mini = imagecreate($x, $y);
                                    $img_mini2 = imagecreatetruecolor($x2, $y2)
                                    or   $img_mini2 = imagecreate($x2, $y2);

                                
                                    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
                                    imagecopyresized($img_mini2,$img_big,0,0,0,0,$x2,$y2,$size[0],$size[1]);

                                    imagepng($img_mini,$file );
                                    imagepng($img_mini2,$file );
                                }
                                elseif ($size['mime']=='image/gif' ) {
                                    $img_big = imagecreatefromgif($file);
                                    $img_new = imagecreate($x, $y);
                                    $img_new2 = imagecreate($x2, $y2);
                               
                                    $img_mini = imagecreatetruecolor($x, $y)
                                    or   $img_mini = imagecreate($x, $y);
                                    $img_mini2 = imagecreatetruecolor($x2, $y2)
                                    or   $img_mini2 = imagecreate($x2, $y2);

                    
                                    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
                                    imagecopyresized($img_mini2,$img_big,0,0,0,0,$x2,$y2,$size[0],$size[1]);

                                    imagegif($img_mini,$file );
                                    imagegif($img_mini2,$file );
                                }
                            }
                            $result=mysql_query("INSERT INTO photo_galerie (reduit, normal) VALUES ('$?????', '$newchemin')"); Et ici je dois donc avoir ma variable contenant le chemin+nom de la miniature de l'image...


Merci de votre aide

lundi 29 juin 2009 à 16:32:36 | Re : Renommer une image à l'upload

TropNul

Bonjour,

Ça ne doit pas être un code que tu as fait donc.

Je ferais un truc du genre :

$newchemin2 = $emplacement . $pathinfo($titre,PATHINFO_FILENAME) . '_reduit' .
$pathinfo($titre,PATHINFO_EXTENSION);

Cordialement

NB : Tu dois absolument lire le fichier d'aide de PHP si tu veux continuer avec la programmation PHP.
lundi 29 juin 2009 à 16:34:07 | Re : Renommer une image à l'upload

TropNul

Réponse acceptée !
Damn it copy/pasting !

Il y a une erreur dans mon précédent post. Voici le correctif.

$newchemin2 = $emplacement . pathinfo($titre,PATHINFO_FILENAME) . '_reduit' .
pathinfo($titre,PATHINFO_EXTENSION);

Cordialement
mardi 30 juin 2009 à 16:10:11 | Re : Renommer une image à l'upload

momoreira

Merci beaucoup trop nul.
Cela fonctionne très bien et le chemin de l'image réduite s'insert correctement dans la BDD.
Cependant je ne parviens pas à créer l'image réduite, du moins elle ne se retrouve pas dans le dossier Images/Galerie.
Peux tu m'aider stp?!
Merci.
mardi 30 juin 2009 à 18:09:57 | Re : Renommer une image à l'upload

TropNul

De rien.

Pour ta nouvelle question, voici une page qui contient tout ce qu'il te faut pour trouver la solution, ou du moins une grande partie de la solution.

[ Lien ]

Cordialement
mardi 30 juin 2009 à 18:34:14 | Re : Renommer une image à l'upload

momoreira

Re salut à toi,

je pense avoir trouvé une solution plus simple, j'ai repris ma fonction de redimensionnement en fonction du type MIME et voici une solution qui fonctionne:

if(filesize($chemin)<2000000000)
                      { if(move_uploaded_file($chemin,$emplacement.$titre))
                          { $newchemin = $emplacement.$titre;
                            $newchemin2 = $emplacement . pathinfo($titre,PATHINFO_FILENAME) . '_reduit.' . pathinfo($titre,PATHINFO_EXTENSION);
                            $file = $newchemin ; # L'emplacement de l'image à redimensionner. L'image peut être de type jpeg, gif ou png
                            $file2 = $newchemin2 ;
                            $x = 448;
                            $y = 299;
                            $x2 = 120;
                            $y2 = 80; # Taille en pixel de l'image redimensionnée
                            $size = getimagesize($file);

                            if ($size) {
                                if ($size['mime']=='image/jpeg' ) {
                                    $img_big = imagecreatefromjpeg($file); # On ouvre l'image d'origine
                                    $img_big2 = imagecreatefromjpeg($file);Je n'ai eu qu'à recréer une image à partir de mon fichier uploadé
                                    $img_new = imagecreate($x, $y);
                                    $img_new2 = imagecreate($x2, $y2);
                                    # création de la miniature
                                    $img_mini = imagecreatetruecolor($x, $y)
                                    or   $img_mini = imagecreate($x, $y);
                                    $img_mini2 = imagecreatetruecolor($x2, $y2)
                                    or   $img_mini2 = imagecreate($x2, $y2);
                                    // copie de l'image, avec le redimensionnement.
                                    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
                                    imagecopyresized($img_mini2,$img_big2,0,0,0,0,$x2,$y2,$size[0],$size[1]);

                                    imagejpeg($img_mini,$file );
                                    imagejpeg($img_mini2,$file2 );
                                }
Et voila le travail, l'upload redimmensionne mon image et en crée une deuxième selon les dimensions x2 et y2 en la renommant avec un _reduit.
D'ailleurs tu avais oublié un '.' après le _réduit, dans:
$newchemin2 = $emplacement . pathinfo($titre,PATHINFO_FILENAME) . '_reduit' . pathinfo($titre,PATHINFO_EXTENSION);

Merci beaucoup de ton aide en tout cas !
Cordialement


Cette discussion est classée dans : file, img, size, x2, y2


Répondre à ce message

Sujets en rapport avec ce message

Rotation d'images : Modifications [ par dumbop84 ] bonjour ....voila.. j'ai un code qui marche nikel mais j'aimerai qu'au lieu d'afficher une image différentes à chaque fois que je charge la page cela AIDEZ MOI PAR PITIÉ [ par Toolsweb ] Bon, j'ai ça  $taille_octets_max = 1048576; // Taille maxi du fichier, en octets.   if ($file_name == "none" || !$file_name)  {    $error="Sp&eacute;c Formulaire d'insertion et upload d'image [ par hasselblad ] HasselbladBonjour,AU SECOURRRSSSS !!!!JE travaille sous DM MX, et je créé avec des formulaires d'insertion d'enregistrement afin de mettre a jour une Comment éviter le "Max File Size Exceeded" ? [ par Tomcube ] Salut !Ma question est : y-a-t'il un moyen en PHP ou autre d'éviter que le message "Max File Size of xxx bytes is exceeded" s'affiche lorsque le visit upload images [ par refkaben ] Bonjour à tous,je veux uploade une image, j'ai fait des recherches sur phpcs et j'ai eu ce code que j'ai adapté à mon cas.le problème c'est que ça fon Problème d'upload en php [ par Adrien4 ] Bonjour,j'ai trouvé un code php sur le net il y a quelques mois, que je ne retrouve plus.Il fonctionnait, même chez free, mais après l'avoir "arrangé" Probleme de changement de format image pour PHPeCard [ par kiki_cosmonaute ] Bonjour,je suis nouveau sur le forum et également dans le php,Voilà, j'ai télécharger le script PHPeCard (mais je sais pu où) et je voulais savoir si Upload ne marche pas sous ie! Au secour! [ par ilya79 ] Bon voila, je fait une chose toute bete, j'envoie les données d'un formulaire à mon fichier upload.php qui fait appele a une classe par le biai de laq Telechargement de fichier localisés sur un ftp via php [ par tekman54000 ] Salut a tous,Je voudrai savoir si quelqu'un pouvait m'expliquer comment proceder pour afficher une boite de dialogue lorsque je clic sur un fichier af Lister contenu d'un repertoire avec tailles fichiers et dossiers [ par harmonyk ] Bonjour à tous ! J'ai codé il n'y a pas très longtemps ce script me permettant d'afficher le contenu d'un répertoire (ici $path) en indiquant pour cha


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 9,968 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales