Communauté Informatique NDFR.net : [PHP] Renommer une image uploadée - Programmation Web (HTML, PHP, ASP, Java, XML, etc.)
Reply
[PHP] Renommer une image uploadée
Thread Tools Display Modes
  #1  
Old 17-02-2005, 12:10
bastien's Avatar
bastien bastien is offline
Modérateur
 
Join Date: 25-10-2002
Location: Toulouse
Age: 41
Posts: 229
Send a message via MSN to bastien Send a message via Skype™ to bastien
[PHP] Renommer une image uploadée

Bonjour,
j'utilise un script qui permet d'uploader une image sur un serveur.
Seulement j'aimerais que cette image prenne le nom de la personne, à savoir la valeur $prenom ...

Mais je ne sais pas trop comment faire pour qu'elle se renomme.
Qui peut m'aider ?

Merci !

PHP Code:
if(empty($prenom) OR empty($email) OR empty($info) OR empty($fichier))
{
    echo
"Aucun champ ne peut rester vide.<br><a href='javascript:history.back(1)'>Cliquez ici pour revenir en arrière</a><br><br>";
    exit;
}
$destination="./trombi/"
$extension="jpg";  
if ((
$fichier&& $fichier != "none")) 

$verif=substr($fichier_name,-3); 
if (
$verif!="$extension"){ 
echo 
"Le fichier que vous voulez télécharger n'est pas au format jpg.<br>Veuillez recommencer"
} else { 
copy($fichier"$destination".$fichier_name); 
$nom $fichier_name
$message="<b>Fichier $fichier_name est téléchargé</b><br><br>"
echo 
"$message"



require(
"../confmysql.php");
$dbconnect mysql_connect($sql_serveur,$sql_user,$sql_password) or die ("erreur de connexion");
mysql_select_db($sql_bdd,$dbconnect) or die ("erreur de connexion base");
$date date("d-m-Y");
print 
"Votre inscription à bien été enregistrée. Elle sera confirmée par l'administrateur.";
mysql_query("INSERT INTO $sql_table_trombi (id,date,prenom,email,info,pseudo_photo) VALUES ('','$date','$prenom','$email','$info','$fichier_name') ") or die ("erreur insert ".mysql_error());
mysql_close(); 
__________________
Reply With Quote
  #2  
Old 17-02-2005, 12:59
Spycam's Avatar
Spycam Spycam is offline
Spectre de ces lieux
 
Join Date: 25-10-2002
Location: France
Age: 36
Posts: 1,075
Affecte $prenom à $fichier_name avant la fonction copy().

Sinon, utilise la fonction rename() :
Quote:
rename

Renomme un fichier
int rename (string oldname, string newname)
rename() rente de renommer le fichier oldname en newname.
rename() retourne TRUE en cas de succès et FALSE sinon.

Last edited by Spycam; 17-02-2005 at 13:05.
Reply With Quote
  #3  
Old 17-02-2005, 14:49
Jogo's Avatar
Jogo Jogo is offline
Phrasiquement typé
 
Join Date: 25-10-2002
Location: Caen (14)
Age: 36
Posts: 385
Send a message via MSN to Jogo
PHP Code:
move_uploaded_file($_FILE["nominput"]['tmpname'], $uploaddir $prenom .$ext); 
où nominput est le nom de ton champ input de ton fichier html.
Voilà, moi j'uilise ça, et ça marche impec.

Quelques références :
move_uploded_file
Introduction à l'upload de fichiers sur php.net

Last edited by Jogo; 17-02-2005 at 14:55.
Reply With Quote
  #4  
Old 17-02-2005, 15:09
Spycam's Avatar
Spycam Spycam is offline
Spectre de ces lieux
 
Join Date: 25-10-2002
Location: France
Age: 36
Posts: 1,075
Oui mais tant qu'à vouloir renommer auant utiliser la fonction rename() elle est faite pour ça !
Reply With Quote
  #5  
Old 17-02-2005, 15:12
Jogo's Avatar
Jogo Jogo is offline
Phrasiquement typé
 
Join Date: 25-10-2002
Location: Caen (14)
Age: 36
Posts: 385
Send a message via MSN to Jogo
Quote:
Originally Posted by Spycam
Oui mais tant qu'à vouloir renommer auant utiliser la fonction rename() elle est faite pour ça !
Si j'ai bien compris, il souhaite renommer l'image lorsqu'il l'upload. Il est alors inutile de d'abord l'uploader et ensuite la renommer, puisque la fonction move_uploaded_file() permet de déplacer le fichier uploadé du répertoire temporaire au répertoire souhaité avec n'importe quel nom. Autrement dit on fait d'une pierre deux coups. Inutile donc d'utiliser la fonction rename().
Reply With Quote
  #6  
Old 17-02-2005, 15:52
Spycam's Avatar
Spycam Spycam is offline
Spectre de ces lieux
 
Join Date: 25-10-2002
Location: France
Age: 36
Posts: 1,075
Ah, je n'avais pas vu les choses comme ça.
Enfin, là il est servi. ^^
Reply With Quote
  #7  
Old 17-02-2005, 16:56
bargio's Avatar
bargio bargio is offline
Assassin de Spaghettis
 
Join Date: 22-01-2003
Location: Avignon
Age: 46
Posts: 1,106
Une question au passage Zyk : si jamais tu as deux personnes qui ont le même prénom, tu fais comment ? parce que si j'ai bien tout suivi, ton code va écraser la précédente photo non ?

Sinon, personnellement, j'utilise aussi move_uploded_file chaque fois que je suis dans un cas comme celui là.

Seb
__________________


"Je suis un génie, mais un génie incompris... personne ne me prend pour un génie" (Calvin)
président-fondateur du CDCQRLMALPPDRE
Reply With Quote
  #8  
Old 17-02-2005, 17:08
Spycam's Avatar
Spycam Spycam is offline
Spectre de ces lieux
 
Join Date: 25-10-2002
Location: France
Age: 36
Posts: 1,075
Tu peux faire quelque chose dans ce genre :
Code:
while(file_exists($destination.$fichier_name))
{ 
 $fichier_name.="+"; 
}
Comme ça tu évites d'écraser le précédent.

[EDIT] A faire avant copy() bien sur.
Reply With Quote
  #9  
Old 17-02-2005, 17:11
bargio's Avatar
bargio bargio is offline
Assassin de Spaghettis
 
Join Date: 22-01-2003
Location: Avignon
Age: 46
Posts: 1,106
Personnellement j'ajoute "time()" à chaque nom de fichier, comme ça je suis sûr qu'il n'y a pas de doublon et ça m'évite d'avoir à faire des vérifications dans tous les sens
Code:
$upload_folder	= "../images/trombi";  
$fichier		= $_FILES["fichier"]["tmp_name"];  
$photo		= time()."_".$_FILES["fichier"]["name"];  
move_uploaded_file($fichier, $upload_folder.$photo);
À toi de voir ce que tu préfères.

Seb
__________________


"Je suis un génie, mais un génie incompris... personne ne me prend pour un génie" (Calvin)
président-fondateur du CDCQRLMALPPDRE
Reply With Quote
  #10  
Old 17-02-2005, 18:43
bastien's Avatar
bastien bastien is offline
Modérateur
 
Join Date: 25-10-2002
Location: Toulouse
Age: 41
Posts: 229
Send a message via MSN to bastien Send a message via Skype™ to bastien
Oula !
Merci pour votre participation

Je vais tester vos bouts de codes !
Bargio, pour ta question, je comptais mettre le nom de la personne, suivis de son 'id' ... qui sera donc un numéro unique, et évitant ainsi les doublons
Vala !

Je teste, et je vous tiens au jus !
__________________
Reply With Quote
  #11  
Old 17-02-2005, 18:49
bargio's Avatar
bargio bargio is offline
Assassin de Spaghettis
 
Join Date: 22-01-2003
Location: Avignon
Age: 46
Posts: 1,106
Quote:
Originally Posted by zyk
Bargio, pour ta question, je comptais mettre le nom de la personne, suivis de son 'id' ... qui sera donc un numéro unique, et évitant ainsi les doublons
Ça marche aussi, mais ne connaissant pas ton code, je me demande si ça ne va pas te faire faire une requête supplémentaire pour récupérer l'id.

Si tout est logique le id est en auto increment non ? Donc pour savoir le id que tu vas donner à la personne lorsqu'elle s'inscrit au début, tu vas devoir aller chercher le dernier id de ta table et l'augmenter de 1. Alors qu'en rajoutant time() tu économises cette requête. Il me semble.

Maintenant il se peut très bien que ton code nécessite de toute façon pour autre chose d'aller dans la bdd et donc te faire faire une requête.

Seb
__________________


"Je suis un génie, mais un génie incompris... personne ne me prend pour un génie" (Calvin)
président-fondateur du CDCQRLMALPPDRE
Reply With Quote
  #12  
Old 17-02-2005, 18:59
bastien's Avatar
bastien bastien is offline
Modérateur
 
Join Date: 25-10-2002
Location: Toulouse
Age: 41
Posts: 229
Send a message via MSN to bastien Send a message via Skype™ to bastien
Arf, bien vu !
Reply With Quote
  #13  
Old 17-02-2005, 19:01
bargio's Avatar
bargio bargio is offline
Assassin de Spaghettis
 
Join Date: 22-01-2003
Location: Avignon
Age: 46
Posts: 1,106
Pour une fois que je peux aider

Seb
__________________


"Je suis un génie, mais un génie incompris... personne ne me prend pour un génie" (Calvin)
président-fondateur du CDCQRLMALPPDRE
Reply With Quote
  #14  
Old 17-02-2005, 19:07
bastien's Avatar
bastien bastien is offline
Modérateur
 
Join Date: 25-10-2002
Location: Toulouse
Age: 41
Posts: 229
Send a message via MSN to bastien Send a message via Skype™ to bastien
J'utilise ton code Bargio, et il est nickel !
Mais ya un point ou je galère ...
Je n'arrive pas à ajouter le prénom dans le nom du fichier

Tu vois genre prenom_time.ext !
Reply With Quote
  #15  
Old 17-02-2005, 19:18
bargio's Avatar
bargio bargio is offline
Assassin de Spaghettis
 
Join Date: 22-01-2003
Location: Avignon
Age: 46
Posts: 1,106
Si tu essayes :

$photo = time()."_".$prenom;

à la place de

$photo = time()."_".$_FILES["fichier"]["name"];

Est ce que ça marche ?

Seb
__________________


"Je suis un génie, mais un génie incompris... personne ne me prend pour un génie" (Calvin)
président-fondateur du CDCQRLMALPPDRE
Reply With Quote
Reply

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Usb+Dos+Drive Image dda42 Matériel 7 30-06-2007 15:55
Faire une image avec Drive image sans Drive sur l'image? cedren Logiciels 4 25-01-2005 13:53
Aide avec Drive Image 7 Alexlesioux Logiciels 5 19-01-2005 21:02
probleme PowerQuest Drive Image 7.0 streets Logiciels 6 24-12-2004 00:11
Problème avec Drive image 7.0 Otherness Logiciels 16 22-01-2004 09:37

All times are GMT +2. The time now is 11:03.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.