Renomer une image

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 : Renomer une image

par dogmongo » 01 avr. 2007, 12:09

// dimention à l'echelle
$dimpourcadre = 100;
$_GET['image'] = "<a href=\"urlimage\" target='_blank'>
<img src=\"urlimage\" width=\"$dimpourcadre\" border=0></a>";

Code : Tout sélectionner

<table><tr><td><?php echo $_GET['image'];?><td><tr><table>

par chris51200 » 01 avr. 2007, 11:08

YES! ça marche! grande victoire pour un petit scarabée!
merci AB et Dogmongo grace à vos exemples j'ai pu trouver mes erreures, je vous montre donc le resultat:
<?php
if(isset($_FILES['photo'])) //'photo' est le nom du fichier récuperer par le formulaire 
{ 
     $nouveaunom = 'image1'; //la variable qui contient le nouveau nom du fichier telechargé
	 $ext = '.gif';
     $dossier = 'upload/'; //'upload/' est le repertoire de destination
     $fichier = $_FILES['photo']['name']; // la variable $fichier est égale au nom du fichier telechargé sur l'ordi client
     if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $nouveaunom.$ext)) // on upload du fichier photo avec un nom temporaire vers le dossier de destination
{
          echo 'Upload effectué avec succès !';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
?>
il me reste encore à trouver comment centrer l'image dans un cadre sans la redimensionner et inserer les securité sur le script d'upload
Merci à tous

par dogmongo » 31 mars 2007, 23:15

Oui je sais , j'ai gardé mes mauvaises abitude mais le principe est le bon !

Pour l'extention c'est toi qui vois :D

Pour $_FILES['avatar'] rien a voir
il est claire que ce sera une variable $_POST['avatare'] , j'ai juste copier coller ton code pour te montré les ligne du dessous

j'ai réalisé un code pour permettre l'opload de fichier multi extention avec la possibilité de renomer, ca fonctionne très bien.

par AB » 31 mars 2007, 17:06

oh la la c'est vraie , désolé j'ai posté ca dans le sirage en pleine nuit
Pas mieux depuis le début du jour d'après ton dernier code :roll:

1/Si son champ de formulaire de type file se nomme 'avatar' : if(isset($_FILES['avatar'])), il ne se nomme pas 'file' : move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$chemin);

2/On utilise plus depuis assez longtemps la syntaxe $HTTP_POST_FILES mais $_FILES (cela ne nuit cependant pas au bon fonctionnement du script)

3/$_FILES['avatar'] retourne un tableau et non pas le nom du fichier téléchargé, sans l'extension, ( $newname =($_FILES['avatar'].$ext); )

Le nom du fichier avec l'extension est $_FILES['avatar']['name']

Pour récupérer le nom du fichier sans l'extension
$nom_sans_extension = substr($_FILES['avatar']['name'], 0, strrpos($_FILES['avatar']['name'],'.'));
d'où le code :
if(isset($_FILES['avatar']))
{ 
     $dossier = 'upload/';

    $nom_sans_extension = substr($_FILES['avatar']['name'], 0, strrpos($_FILES['avatar']['name'],'.'));

//ajout d'une extension exemple '.gif'

 $ext = '.gif';

 $nom_avec_nouvelle_extension = $nom_sans_extension.$ext;

     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $nom_avec_nouvelle_extension)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
    {
          echo 'Upload effectué avec succès !';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
} 
Mais je ne vois pas bien l'utilité de modifier l'extension des fichiers...

par dogmongo » 31 mars 2007, 14:00

oh la la c'est vraie , désolé j'ai posté ca dans le sirage en pleine nuit , vire carément la ligne elle ne sert à rien
if(isset($_FILES['avatar'])) {   

          $newname =($_FILES['avatar'].$ext); 

     $chemin = "upload/".$newname; 

     move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$chemin); 

    //facultatif ca dépend de ton serveur  
    //chmod(upload/'.$newname, 0755); 

}else{ 
              
        print("<script language=javascript>\n"); 
        print("alert('Votre image n a pas été ajoutée.')"); 
        print("</script>\n"); 


} 

par dogmongo » 31 mars 2007, 13:56

si , la vairable avatare c'est justement le nom du fichier que tu aura récupéré du formulaire et $ext c'est l'extention

$newname deviens le nom du fichier compet avec l'extenssion soit (

image1.jpg

image1 est arrivé de ton formulaire par la variable $avatar

par AB » 31 mars 2007, 12:24

Dans ton exemple, tu indiques que la variable $fichier est égale au nom du fichier téléchargé sur l'ordinateur client
//(pas besoin de basename)
$fichier = $_FILES['avatar']['name'];
.
Et c'est cette même valeur que tu donnes comme nom de fichier sur le seveur distant
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier))
Donc tu n'a rien renommé.

Si tu mets
$fichier = 'toto'.$_FILES['avatar']['name'];
// à la place de $fichier = $_FILES['avatar']['name'];
le fichier sur le serveur aura le nom du fichier original précédé de 'toto'

Si besoin, pour récupérer l'extension et la mettre en minuscule:
$ext = strtolower(substr(strrchr($fichier,'.'),1));

par dogmongo » 31 mars 2007, 03:55

oh bein c'est plutôt simple si j'ai bien compris
 

if(isset($_FILES['avatar'])) {  

     $avatar = $_FILES['avatar'] ;

     $newname =($avatar.$ext);

     $chemin = "upload/".$newname;

     move_uploaded_file($_POST["file"]["tmp_name"],$chemin);

    //facultatif ca dépend de ton serveur 
    //chmod(upload/'.$newname, 0755);

}else{
             
        print("<script language=javascript>\n");
        print("alert('Votre image n a pas été ajoutée.')");
        print("</script>\n");


}

essai aussi de récupérer l'extenssion d'origine du fichier genre

$ext= strstr($photo_origine, "."); /* détermine l'extension du fichier */

par chris51200 » 30 mars 2007, 17:00

voici mon code :
je voudrais savoir où je peux incorporer le code pour renomer mon image selectionner par le formulaire en "image1"
<?php
if(isset($_FILES['avatar']))
{ 
     $dossier = 'upload/';
     $fichier = basename($_FILES['avatar']['name']);
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
    {
          echo 'Upload effectué avec succès !';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
?>

par dogmongo » 30 mars 2007, 16:36

ah ok bon alors essai de voir mon scripts disponible sur phpcs.com

http://www.phpcs.com/auteur/ROTTWEILER/6929.aspx


tu retrouvera surement ma fiche et mes sources, dont une qui est pour upload elle s'appel "UPLOAD D'IMAGE AVEC OPTION (RENOMER - CHOIX EXTENSION - ENREGISTREMENT DANS LA TABLE MYSQL)", ce scripts à fait un carton je ne comprend pas pourquoi il est très sommaire pourtant :lol:
Peu être qu'il t'aidera aussi :)

par AB » 30 mars 2007, 16:25

Bonjour,

Explications ici
http://www.phpfrance.com/forums/voir_re ... php#179305

mais fait attention à la remarque de Ryle

par dogmongo » 30 mars 2007, 14:01

salut

Dans quel but tu veux renomer tes images ? on peu peu être te conseiller ue autre solution plus a amont ?

par Cyrano » 30 mars 2007, 13:58

Modération :
chris51200, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

uploal de photo

par chris51200 » 30 mars 2007, 13:33

merci mais de vos reponses mais je suis débutant!
ou dois je incorporer ce script?
voici mon code:
le upload.htm:
<form method="POST" action="upload.php" enctype="multipart/form-data">
     <!-- On limite le fichier à 100Ko -->
     <input type="hidden" name="MAX_FILE_SIZE" value="100000">
     Fichier : <input type="file" name="avatar">
     <input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
le upload.php:
<?php
if(isset($_FILES['avatar']))
{ 
     $dossier = 'upload/';
     $fichier = basename($_FILES['avatar']['name']);
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo 'Upload effectué avec succès !';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
?>

par Ryle » 30 mars 2007, 10:03

Tu peux effectivement renommer ton image lors du move_uploaded_file(). Fais attention toutefois si tu donnes l'extension .gif à un fichier dont le type est jpeg, tu peux avoir des soucis avec certains éditeurs ou navigateurs... :)
Changer le nom ou l'extension d'un fichier ne change en rien son format initiale (type mime)