changer le nom du fichier avant un upload

page 1 page 2
Répondre
shushu
shushu
Déconnecté
Ensemble c'est en un mot, comme unis
Bonjour à tous, Je voudrais savoir si une personne sait me dire comment faire pour changer le nom d'un fichier avant de le uploader sur mon serveur
ex: le fichier "images.jpg" devient "001logo.jpg".

Merci d'avance pour votre aide
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Et pourquoi ne pas changer le nom du fichier une fois l'upload fait ?

Ca parait plus logique : tu reçois des données $_FILES, à toi d'en faire ce que tu veux.
De toutes façons, tu ne pourras pas renommer le fichier sur le poste du client.
shushu
shushu
Déconnecté
Ensemble c'est en un mot, comme unis
Merci pour ta réponse. Etant un novice (plus que ça même) tu pourrais me dire comment faire.

Merci d'avance
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Montre nous comment tu procèdes actuellement pour ton chargement de fichier actuellement, ça sera plus facile pour t'expliquer.
shushu
shushu
Déconnecté
Ensemble c'est en un mot, comme unis
Merci pour ton aide, je réponds assez lentement car c'est par passion, et mon boulot prend du temps
voila mon code pour le upload

  1. <?php
  2. $target = 'images/'; // Repertoire cible
  3. $extension = 'jpg'; // Extension du fichier sans le .
  4. $max_size = 100000; // Taille max en octets du fichier
  5. $width_max = 300; // Largeur max de l'image en pixels
  6. $height_max = 300; // Hauteur max de l'image en pixels
  7.  
  8. //---------------------------------------------
  9. // DEFINITION DES VARIABLES LIEES AU FICHIER
  10. //---------------------------------------------
  11.  
  12. $nom_file = $_FILES['fichier']['name'];  
  13. $taille = $_FILES['fichier']['size'];  
  14. $tmp = $_FILES['fichier']['tmp_name'];  
  15.  
  16. //----------------------
  17. // SCRIPT D'UPLOAD
  18. //----------------------
  19. ?>
  20. <html>
  21. <head>
  22. <title>Upload d'une image sur le serveur !</title>
  23. </head>
  24. <body>
  25. <?php
  26. if(!empty($_POST['posted'])) {  
  27. // On vérifie si le champ est rempli
  28. if(!empty($_FILES['fichier']['name'])) {  
  29. // On vérifie l'extension du fichier
  30. if(substr($nom_file, -3) == $extension) {  
  31. // On récupère les dimensions du fichier
  32. $infos_img = getimagesize($_FILES['fichier']['tmp_name']);  
  33.  
  34. // On vérifie les dimensions et taille de l'image
  35. if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size)) {  
  36. // Si c'est OK, on teste l'upload
  37. if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target.$_FILES['fichier']['name'])) {  
  38. // Si upload OK alors on affiche le message de réussite
  39. echo '<b>Image uploadée avec succès !</b>';  
  40. echo '<hr />';  
  41. echo '<b>Fichier :</b> ', $_FILES['fichier']['name'], '<br />';  
  42. echo '<b>Taille :</b> ', $_FILES['fichier']['size'], ' Octets<br />';  
  43. echo '<b>Largeur :</b> ', $infos_img[0], ' px<br />';  
  44. echo '<b>Hauteur :</b> ', $infos_img[1], ' px<br />';  
  45. echo '<hr />';  
  46. echo '<br /><br />';  
  47. } else {  
  48. // Sinon on affiche une erreur système
  49. echo '<b>Problème lors de l\'upload !</b><br /><br /><b>', $_FILES['fichier']['error'], '</b><br /><br />';  
  50. }  
  51. } else {  
  52. // Sinon on affiche une erreur pour les dimensions et taille de l'image
  53. echo '<b>Problème dans les dimensions ou taille de l\'image !</b><br /><br />';  
  54. }  
  55. } else {  
  56. // Sinon on affiche une erreur pour l'extension
  57. echo '<b>Votre image ne comporte pas l\'extension .jpg !</b><br /><br />';  
  58. }  
  59. } else {  
  60. // Sinon on affiche une erreur pour le champ vide
  61. echo '<b>Le champ du formulaire est vide !</b><br /><br />';  
  62. }  
  63. }  
  64. ?> 
  65. <form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="POST">
  66. <b>Envoyer le fichier :</b><br />
  67. <input type="hidden" name="posted" value="1" />
  68. <br>
  69. <input name="fichier2" type="file" id="fichier2" />
  70. <input type="submit" value="Uploader" />
  71. </form>
  72. </body>
  73. </html> 
Keika
Keika
Déconnecté
Le PHP --> C'est dur !
salut,

action="<?php echo $PHP_SELF; ?>" << ca passe ca ? j'aurai utilise $_SERVER['PHP_SELF']

et quand tu deplaces le fichier uploade, au lieu de reutiliser $target.$_FILES['fichier']['name'], fait $target.le_nom_voulu
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
PHP_SELF est à fuir comme la peste. C'est dans 95% des cas source de faille de sécurité.
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
shushu : je ne t'oublie pas, je pars en WE là, mais je regarderais ton message dimanche soir.
vitchi
vitchi
Déconnecté
C'est important quecela soit renomme comme tu le souhaites?

Sinon tu peux jeter un coup d'oeil ici:

http://www.lephpfacile.com/wall/wall-1549.php

Cela renomme aussi les fichiers mais en md5 avec un id unique... afin d'eviter les eventuels doublons...
shushu
shushu
Déconnecté
Ensemble c'est en un mot, comme unis
Merci vitchi pour ta réponse mais oui, c'est important car il va après le chercher sur une autre page. Et il est configurer pour ce nom de fichier. Mais merci quand même.
shushu
shushu
Déconnecté
Ensemble c'est en un mot, comme unis
Merci la globule. Mais je dois utilisé quel commande si je dois pas utiliser php_self.
Merci d'avance
Keika
Keika
Déconnecté
Le PHP --> C'est dur !
LA GLOBULE te dit qu'utiliser php self c'est pas bien, alors t'oublies et a la place soit tu utilises "./" soit tu ne mets rien, ca revient au meme pour les formulaires.

Apres as-tu essaye de renommer tes fichier avec ce que je t'ai propose plus haut ?
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Non, ce n'est pas pas pareil :)

Je te ferais une démonstration ce soir.
Keika
Keika
Déconnecté
Le PHP --> C'est dur !
mettre:

action="./"

ou

action=""

c'est pas pareil ?
LupusMic
LupusMic
Déconnecté
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
(Keika) C'est fondamentalement différent. Voici ce qu'entraînent respectivement action="./" et
action="", avec Apache comme serveur Web, configuré de manière standard :

Premier cas :
- demande de consultation du répertoire avec soumission des données par le client
- Apache regarde si le répertoire existe
- Apache cherche quel est le fichier par défaut à consulter pour ce répertoire
- invocation de index.php

Deuxième cas :
- demande de consultation du fichier avec soumission des données par le client, le fichier demandé par le client est le fichier courant
- Apache regarde si le fichier existe
- Apache invocation le fichier

Bien sûr, si le fichier dans lequel le formulaire se trouve est index.php, ça revient au même. Mais si le fichier s'appelle autrement, ça change tout.
page 1 page 2
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Php - Breizh Blog