Mon problème est toutefois un peu plus "complexe" (je n00b) qu'il n'y parait, car je souhaiterai que le fichier uploadé prenne le nom d'une variable (correspondant en fait à un nom d'utilisateur précédemment sélectionné
Je ne suis peut-être pas très clair, je vais donc vous fournir quelques bribes de pages, en espérant que vous pourrez m'aider à résoudre ce problème
Dans le haut de ma page (avant </head>)
// Constantes pour l'upload des imgaes
$folder = '../images/'; // Repertoire cible
$extension = 'jpg'; // Extension du fichier sans le .
$max_size = 100000; // Taille max en octets du fichier
$width_max = 120; // Largeur max de l'image en pixels
$height_max = 180; // Hauteur max de l'image en pixels
$nom_file = $_FILES['fichier']['name'];
$taille = $_FILES['fichier']['size'];
$tmp = $_FILES['fichier']['tmp_name'];
Mon formulaire
<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table class="categories" align="center" cellpadding="3" style="font-size:11px">
<tr style="color:<?php echo $stylecol_titre; ?>;background-color:<?php echo $cadre_bgc_titre; ?>"><td align="center" colspan="3" style="font-size:12px">Gestion des photos (<strong><?php echo (isset($row['nom']) ? $row['nom'] : '?'); ?></strong>)</td></tr>
<tr><td align="right">Fichier :</td><td><input type="file" name="fichier" /></td>
<td rowspan="2" width="70%">L'upload est uniquement valable avec des fichiers ayant une extension <strong>*.jpg</strong>, tous les autres formats (*.bmp, *.png, *.gif et même *.jpeg) d'image seront systématiquent refusés !
<br /><br />Limitations d'upload : <strong>Taille :</strong> <?php echo $max_size/1000; ?>Ko maximum - <strong>Dimensions :</strong> <?php echo $width_max; ?> (L) par <?php echo $height_max; ?> (H).
<br /><br />Par ailleurs, veillez à bien sélectionner un nom dans la liste ci-dessus avant d'envoyer le fichier !</td></tr>
<tr><td align="center" colspan="2" width="30%"><input type="submit" name="action" value="Go go go !" style="width:100px" /></td></tr>
</table>
</form>
Le script d'upload a proprement parlé
else if(isset($_POST['action']) and $_POST['action'] == "Go go go !") {
// 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($tmp , $folder . $nom_file)) {
// 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 "<script type=\"text/javascript\"> alert(\"Veuillez vérifier la taille ainsi que les dimensions de l'image !\");</script>";
}
}
else {
// Sinon on affiche une erreur pour l'extension
echo "<script type=\"text/javascript\"> alert(\"Désolé, mais le fichier $nom_file ne comporte pas l\'extension .jpg !\");</script>";
}
}
else {
// Sinon on affiche une erreur pour le champ vide
echo "<script type=\"text/javascript\"> alert(\"Le champ du formulaire est vide !\");</script>";
}
mysql_close(); // Fermeture de la connexion
}
Ce que j'aimerai donc, c'est affecter à l'image uploadée le nom contenu dans $row['nom'] que j'appelle par exemple dans le <tr> du tableau Vous avez la soluce miracle ?
Je suis là si vous manquez d'informations ! (je peux également poster la page dans son intégralité si certaines choses vous échappent, suffit de me demander !)