Upload de fichiers en PHP

Rechercher

Upload de fichiers en PHP

Par rachidww2  -  2 reponses  -  Le 05/05/2013 14:20  -  Editer  - 

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

Par rachidww2  -  Le 05/05/2013 14:29  -  Haut de page  - 

hhhh j'ai oublier de modifier tout mes var donc
$_FILES['image_comp']['name']si la meme $_FILES['image']['name']

 
Par rachidww2  -  Le 05/05/2013 14:52  -  Haut de page  - 

Résolu :) je met $image = $fichier; après le script de formatage du nom et ça marche

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |