Probléme upload php

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,
J'ai mon script qui ne fonctionne pas
<?php
if( isset($_POST['upload']) ) // si formulaire soumis
{
  $id = $_GET['id'];
  $content_dir = 'upload/'; // dossier où sera déplacé le fichier
  $tmp_file = $_FILES['fichier']['tmp_name'];
  if( is_uploaded_file($tmp_file) )
  {
    $type_file = $_FILES['fichier']['type'];
    if( strstr($type_file, 'jpg') && strstr($type_file, 'jpeg') && strstr($type_file, 'bmp') && strstr($type_file, 'gif') )
    {
      if($_FILES['image']['size'] < 30000)
      {
      // on copie le fichier dans le dossier de destination
      $name_file = $_FILES['fichier']['name'];
      $extension_image = strrchr(strtolower($name_file), '.');
      $name_filefin = $id.$extension_image;
        if( move_uploaded_file($tmp_file, $content_dir . $name_filefin) )
        {
        echo "Le fichier à bien été uploader";
        }else{echo "Impossible de copier le fichier"; }
      }else{echo "Votre image est supérieure à la taille maximale de 30000 octets";}
    }else{echo "Le fichier nest pas une image"; }
  }else{echo "Le fichier est introuvable"; }
}else{echo "Merci de remplir le formulaire";}
?>


En effet, peut importe le type d'image que je met, il m'affiche l'erreur : "Le fichier nest pas une image". Alors qu'en réalité si.

Si vous comprenez, merci de m'aidez.
--
Lucas

2 réponses

  1. benvii Messages postés 311 Statut Membre 137
     
    C'est l'opérateur logique qui n'est pas bon c'est OU à la place de ET ligne 10 :
    <?php
    if( isset($_POST['upload']) ) // si formulaire soumis
    {
      $id = $_GET['id'];
      $content_dir = 'upload/'; // dossier où sera déplacé le fichier
      $tmp_file = $_FILES['fichier']['tmp_name'];
      if( is_uploaded_file($tmp_file) )
      {
        $type_file = $_FILES['fichier']['type'];
        if( strstr($type_file, 'jpg') || strstr($type_file, 'jpeg') || strstr($type_file, 'bmp') || strstr($type_file, 'gif') )
        {
          if($_FILES['image']['size'] < 30000)
          {
          // on copie le fichier dans le dossier de destination
          $name_file = $_FILES['fichier']['name'];
          $extension_image = strrchr(strtolower($name_file), '.');
          $name_filefin = $id.$extension_image;
            if( move_uploaded_file($tmp_file, $content_dir . $name_filefin) )
            {
            echo "Le fichier à bien été uploader";
            }else{echo "Impossible de copier le fichier"; }
          }else{echo "Votre image est supérieure à la taille maximale de 30000 octets";}
        }else{echo "Le fichier nest pas une image"; }
      }else{echo "Le fichier est introuvable"; }
    }else{echo "Merci de remplir le formulaire";}
    ?>


    Car tu ne veux pas tout les types d'images.
    0
  2. Utilisateur anonyme
     
    Merci Benvii.
    Aprés avoir posté mon message, j'ai continué mes recherches et du coup j'ai fait :
    <?php
    if( isset($_POST['upload']) ) // si formulaire soumis
    {
      $id = $_GET['id'];
      $content_dir = 'upload/'; // dossier où sera déplacé le fichier
      $tmp_file = $_FILES['fichier']['tmp_name'];
      if( is_uploaded_file($tmp_file) )
      {
        $type_file = $_FILES['fichier']['type'];
        $allowed_types = array("image/bmp", "image/gif", "image/jpeg", "image/jpg",);
        if(in_array($type_file, $allowed_types))
        {
          $size = $_FILES['fichier']['size'];
          if($size < 30000)
          {
          // on copie le fichier dans le dossier de destination
          $name_file = $_FILES['fichier']['name'];
          $extension_image = strrchr(strtolower($name_file), '.');
          $name_filefin = $id.$extension_image;
            if( move_uploaded_file($tmp_file, $content_dir . $name_filefin) )
            {
            echo "Le fichier à bien été uploader";
            }else{echo "Impossible de copier le fichier"; }
          }else{echo "Votre image est supérieure à la taille maximale de 30000 octets";}
        }else{echo "Le fichier nest pas une image"; }
      }else{echo "Le fichier est introuvable"; }
    }else{echo "Merci de remplir le formulaire";}
    ?>


    Sa marche aussi.
    Merci quand même
    0