Problème avec $_FILES

Résolu
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 25 juil. 2008 à 11:25
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 26 juil. 2008 à 12:58
Salut,

J'ai un problème avec un code qui est censé uploader une image et mettre son chemin dans une base de donnée...

Je n'ai aucune erreur...

Mon code PHP :
 $poids_max 2560000; // Poids max de l'archive en octets (1Ko 1024 octets)
 $repertoire = 'uploads/'; // Repertoire d'upload


 if (isset($_FILES['image'])) {


  // On vérifit le type du fichier
  if ($_FILES['image']['type'] != 'jpeg' && $_FILES['image']['type'] != 'jpg' && $_FILES['image']['type'] != 'png' && $_FILES['image']['type'] != 'gif' && $_FILES['image']['type'] != 'bmp') {
   $erreur = 'Le fichier doit être au format *.jpeg, *.jpg, *.gif, *.bmp ou *.png .';
  }


  // On vérifit le poids de l'image
  elseif ($_FILES['image']['size'] > $poids_max) {
   $erreur = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.';
  }


  // On vérifit si le répertoire d'upload existe
  elseif (!file_exists($repertoire)) {
   $erreur = 'Erreur, le dossier d\'upload n\'existe pas.';
  }


  // Si il y a une erreur on l'affiche sinon on peut uploader
  if(isset($erreur)) {
   echo '' . $erreur . '
[javascript:history.back(1) Retour]';
  } else {


   // On définit l'extention du fichier puis on le nomme par le timestamp actuel
   if ($_FILES['image']['type'] == 'jpeg') { $extention = '.jpeg'; }
   if ($_FILES['image']['type'] == 'jpg') { $extention = '.jpg'; }
   if ($_FILES['image']['type'] == 'png') { $extention = '.png'; }
   if ($_FILES['image']['type'] == 'gif') { $extention = '.gif'; }
   if ($_FILES['image']['type'] == 'bmp') { $extention = '.bmp'; }
   $nom_fichier = time().$extention;


   // On upload le fichier sur le serveur.
   if (move_uploaded_file($_FILES['image']['tmp_name'], $repertoire.$nom_fichier)) {
    echo "Article bien envoyé retour";
   }
  }
  if(isset($_POST['pseudo']) && isset($_POST['article'])) {
   $sql = "INSERT INTO ag_articles VALUES('','".$_POST['pseudo']."','".$_POST['titre']."','".$_POST['article']."','".$repertoire.$nom_fichier."','".$_POST['categorie']."')";
   mysql_query($sql) or die(mysql_error());
  }
 } else {
  echo "problème avec l'image";
 }

Mon code HTML :

           <form action="#" method="POST">
            
             Pseudo :

             Titre :

             Categorie :
             <select name="categorie">
              <option value="france">France - L1</option>
              <option value="etranger">Etranger</option>
              <option value="coupes">Coupes</option>
              <option value="chroniques">Chroniques</option>
             </select>

             Article :
<textarea name="article" rows="30" cols="60"></textarea>

             Image :

             
            

           </form>

Il semblerai que le problème vienne du if(isset($_FILES['image'])) {... car même la requête n'est pas éxécuté et ça m'affiche : problème avec l'image !

Merci d'avance !

a++







Si la réponse vous convient, pensez : Réponse acceptée !

10 réponses

Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
25 juil. 2008 à 15:30
No probleme

Modifie ceci ...

<FORM action="#" method="POST" ENCTYPE="multipart/form-data">

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
3
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
25 juil. 2008 à 20:15
Re,

le problème venait de la comparaison..

je comparais le type du fichier a l'extension seuleument, et sa ne suffisait pas...

il fallait faire une comparaison comme ça :

image/extension

a++

Si la réponse vous convient, pensez : Réponse acceptée !
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
26 juil. 2008 à 12:55
// On vérifit le type du fichier
if ($_FILES['image']['type'] != 'jpeg' && $_FILES['image']['type'] != 'jpg' && $_FILES['image']['type'] != 'png' && $_FILES['image']['type'] != 'gif' && $_FILES['image']['type'] != 'bmp') {
$erreur = 'Le fichier doit être au format *.jpeg, *.jpg, *.gif, *.bmp ou *.png .';
}

image/jpeg et pas jpeg...
3
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
25 juil. 2008 à 15:32
Merci Teclis01,

Je désepèrai d'avoir un jour une réponse...

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
25 juil. 2008 à 15:37
Je passe pas souvent ces temps ci après mon degout de trop de boulzor
Toi tu es plutot sympa, cordial et pas boulzor donc je répond avec plaisir si je passe ^_^
La seule chose qui te manque de l'experience mais tu es jeune donc j'ai même plaisir à t'apporter quelques connaissances supplémentaires

Dis moi si ça fonctionne le cas échéant ce qui se passe

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
25 juil. 2008 à 15:46
>>Je passe pas souvent ces temps ci après mon degout de trop de boulzor
      Qu'es ce qui s'est passé

>>Toi tu es plutot sympa, cordial et pas boulzor donc je répond avec plaisir si je passe ^_^
      Merci, toi aussi tu es sympas (et en plus tu as de l'expérience) !

>>La seule chose qui te manque de l'experience mais tu es jeune donc j'ai même plaisir à t'apporter quelques connaissances supplémentaires
      Oui, je manque d'expérience, mais peut être que ça viendra un jour

>>Dis moi si ça fonctionne le cas échéant ce qui se passe
      Oui, c'est ce que j'avais l'intention de faire (je ne part jamais sans laisser un petit message de remerciement) !
      La je testais mais j'ai reçu la notification donc j'ai pas encore vérifié !

Merci encore

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
25 juil. 2008 à 15:54
Oki toki j'attend ton retour alors

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
25 juil. 2008 à 16:24
re,

mauvaise nouvelle, ça ne marche pas, ça m'affiche :

<td> </td><td>Le fichier doit être au format *.jpeg, *.jpg, *.gif, *.bmp ou *.png

Alors que mon fichier est au format .jpg !
</td>
Merci de ton aide !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
25 juil. 2008 à 20:16
Merci de ton aide teclis, car sans l'attribut enctype je n'y serait pas arrivé !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
26 juil. 2008 à 12:58
Merci, mais j'ai trouvé la réponse hier soir...

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
Rejoignez-nous