changer le nom du fichier avant un upload
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
Ensemble c'est en un mot, comme unis
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.
Merci pour ta réponse. Etant un novice (plus que ça même) tu pourrais me dire comment faire.
Merci d'avance
Ensemble c'est en un mot, comme unis
Montre nous comment tu procèdes actuellement pour ton chargement de fichier actuellement, ça sera plus facile pour t'expliquer.
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
<?php
$target = 'images/'; // Repertoire cible
$extension = 'jpg'; // Extension du fichier sans le .
$max_size = 100000; // Taille max en octets du fichier
$width_max = 300; // Largeur max de l'image en pixels
$height_max = 300; // Hauteur max de l'image en pixels
//---------------------------------------------
// DEFINITION DES VARIABLES LIEES AU FICHIER
//---------------------------------------------
$nom_file = $_FILES['fichier']['name'];
$taille = $_FILES['fichier']['size'];
$tmp = $_FILES['fichier']['tmp_name'];
//----------------------
// SCRIPT D'UPLOAD
//----------------------
?>
<html>
<head>
<title>Upload d'une image sur le serveur !</title>
</head>
<body>
<?php
if(!empty($_POST['posted'])) {
// On vérifie si le champ est rempli
if(!empty($_FILES['fichier']['name'])) {
// On vérifie l'extension du fichier
if(substr($nom_file, -3) == $extension) {
// On récupère les dimensions du fichier
$infos_img = getimagesize($_FILES['fichier']['tmp_name']);
// On vérifie les dimensions et taille de l'image
if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size)) {
// Si c'est OK, on teste l'upload
if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target.$_FILES['fichier']['name'])) {
// Si upload OK alors on affiche le message de réussite
echo '<b>Image uploadée avec succès !</b>';
echo '<hr />';
echo '<b>Fichier :</b> ', $_FILES['fichier']['name'], '<br />';
echo '<b>Taille :</b> ', $_FILES['fichier']['size'], ' Octets<br />';
echo '<b>Largeur :</b> ', $infos_img[0], ' px<br />';
echo '<b>Hauteur :</b> ', $infos_img[1], ' px<br />';
echo '<hr />';
echo '<br /><br />';
} else {
// Sinon on affiche une erreur système
echo '<b>Problème lors de l\'upload !</b><br /><br /><b>', $_FILES['fichier']['error'], '</b><br /><br />';
}
} else {
// Sinon on affiche une erreur pour les dimensions et taille de l'image
echo '<b>Problème dans les dimensions ou taille de l\'image !</b><br /><br />';
}
} else {
// Sinon on affiche une erreur pour l'extension
echo '<b>Votre image ne comporte pas l\'extension .jpg !</b><br /><br />';
}
} else {
// Sinon on affiche une erreur pour le champ vide
echo '<b>Le champ du formulaire est vide !</b><br /><br />';
}
}
?>
<form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="POST">
<b>Envoyer le fichier :</b><br />
<input type="hidden" name="posted" value="1" />
<br>
<input name="fichier2" type="file" id="fichier2" />
<input type="submit" value="Uploader" />
</form>
</body>
</html>
Ensemble c'est en un mot, comme unis
le 11/04/2008 à 09:23
Keika
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
Le PHP --> C'est dur !
PHP_SELF est à fuir comme la peste. C'est dans 95% des cas source de faille de sécurité.
shushu : je ne t'oublie pas, je pars en WE là, mais je regarderais ton message dimanche soir.
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...
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.
Ensemble c'est en un mot, comme unis