Probléme upload php

Résolu/Fermé
Utilisateur anonyme - 28 mai 2009 à 20:51
 Utilisateur anonyme - 28 mai 2009 à 21:16
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.
A voir également:

2 réponses

benvii Messages postés 308 Date d'inscription dimanche 8 juin 2008 Statut Membre Dernière intervention 28 octobre 2010 137
28 mai 2009 à 21:07
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
Utilisateur anonyme
28 mai 2009 à 21:16
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