Lorsque j'insère une image dans ma bdd via un formulaire, celle-ci garde son nom d'origine.
Une idée de ce qu'il faut que je change (ou rajoute) dans le script ?
Merci !
Mon script :
<?php
$dossier = 'upload/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 1000000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
$file_name = $dossier . $fichier;
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $file_name)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
// on se connecte à MySQL
$db = mysql_connect("xxx", "xxx", "xxx");
// on sélectionne la base
mysql_select_db('xxx',$db);
$id_orgue = intval($_SESSION['id_annonce']);
$sql = "UPDATE annonces SET image='" . $file_name . "' WHERE id = " . $id_orgue;
mysql_query($sql);
mysql_close($db);
echo "<p style=\"text-align:center\">Votre photo a bien été envoyée<br /><br />\n";
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo 'Erreur: ' . $erreur;
}
?>
Je déplace ton sujet dans la section "Base de données".
Image uploadée mais non renommée
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.