le 07/07/2011 à 16:00
Prof_Matches
Bonjour,
Sur mon formulaire, l'utilisateur peut choisir un fichier à m'envoyer. L'enregistrement du fichier dans le répertoire choisit fonctionne très bien. Le soucis c'est que quand un fichier portant un nom identique existe déjà dans le répertoire, il est écrasé.
J'aimerais donc enregistrer le fichier avec son nom d'origine suivi de quelque chose d'aléatoire : soit un nombre aléatoire donné par la fonction ($nom_aleatoire = md5(uniqid(rand(), true));) ou par un ID de session : et c'est là que je sèche.
Il est nécessaire également de pouvoir retrouver le nom du fichier pour pouvoir l'afficher dans une page que l'utilisateur devra valider pour envoi.
En termes plus cours : je souhaite enregistrer un fichier avec un nom unique comprenant au minimum le nom et l'extension d'origine.
Voici le code que j'ai et qui fonctionne (mais avec le nom original du fichier) :
Sur mon formulaire, l'utilisateur peut choisir un fichier à m'envoyer. L'enregistrement du fichier dans le répertoire choisit fonctionne très bien. Le soucis c'est que quand un fichier portant un nom identique existe déjà dans le répertoire, il est écrasé.
J'aimerais donc enregistrer le fichier avec son nom d'origine suivi de quelque chose d'aléatoire : soit un nombre aléatoire donné par la fonction ($nom_aleatoire = md5(uniqid(rand(), true));) ou par un ID de session : et c'est là que je sèche.
Il est nécessaire également de pouvoir retrouver le nom du fichier pour pouvoir l'afficher dans une page que l'utilisateur devra valider pour envoi.
En termes plus cours : je souhaite enregistrer un fichier avec un nom unique comprenant au minimum le nom et l'extension d'origine.
Voici le code que j'ai et qui fonctionne (mais avec le nom original du fichier) :
<?php
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
if ($_FILES['monfichier']['size'] <= 1000000)
{
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
$nom_aleatoire = md5(uniqid(rand(), true));
if (in_array($extension_upload, $extensions_autorisees))
{
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/' . basename($_FILES['monfichier']['name']));
echo "L'envoi a bien été effectué !";
}
}
}
?>