Upload de fichiers en PHP
Salam(Salut tt l monde) :
j'ai un petit problème concernent a Upload de fichiers en PHP, voila mon code pour bien comprendre :
formulaire.php
<form id="formajouter" name="ajouter" action="ajoutercible.php" method="POST" enctype="multipart/form-data">
....
<tr align="center">
<th>CODE :</th>
<td ><input type="text" name="code"></td>
</tr>
<tr align="center">
<th>IMAGE :</th>
<td >
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="file" name="image">
</td>
</tr>
<tr align="center">
<td colspan="2"><input class="submit" type="submit" value="AJOUTER"></td>
ajoutercible.php
.....
//récupérer valeur de code
$code = $_POST["code"];
//récupérer le nom de l'image :
$image = basename($_FILES['image']['name']);
$dossier = '../../images/comp/';
$fichier = basename($_FILES['image_comp']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['image_comp']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['image_comp']['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';
}
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);
if(move_uploaded_file($_FILES['image_comp']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
// Requête pour stocker le nom de l'image a la base de donner
//création de la requête SQL:
$sql = "INSERT INTO table (...,...,.....,code, image) VALUES ('$....', '$....', '$code', '$image') " ;
.........
je suivis ce tuto http://antoine-herault.developpez.com/tutoriels/php/upload/
donc pour premier temps tout ça marche bien :) mais s'il j'upload une image avec le nom contient caractère spécieux le nom est change donc
$image = basename($_FILES['image']['name']);
ce nom est faut car il est changé par le code de "formater le nom du fichier :
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');"
alors pour moi je veux le nom de l'image sera variable $code que déjà insérer dans formulaire.php avec extention reste le meme;
exp de résultat que je veux :
dans formulaire.php
code-->123
image(parcourir)-->émage2test.jpg //l'extension de l'image peut change a gif ....
dans ajoutercible.php
echo $image; // Résultat sera CODE.EXTENSION --> 123.jpg
j'éspere que comprend ce que je veux
Merci en avance pour votre aide :)
Réponses apportées à cette discussion
hhhh j'ai oublier de modifier tout mes var donc
$_FILES['image_comp']['name']si la meme $_FILES['image']['name']
Résolu :) je met $image = $fichier; après le script de formatage du nom et ça marche