Probléme d'upload php

Bonjour,

je suis débutant,
je fais un scrip et j'ai un problème avec ma partie upload,

voici ma page :
// Mon formulaire :
<form method="POST" action="ajout_composant.php">
<center>
<input type="file" name="fichier1" ><br>
<input type="submit" name="upload_image" value="Uploader"><br>
<input type="file" name="fichier2" ><br>
<input type="submit" name="upload_pdf" value="Uploader"><br><br>
<input type="submit" value="Envoyer" name="envoyer">
</center>
</form>

// ma partie de traitement

if( isset($_POST['upload_image']) )

{
$content_dir = '/var/www/Images/'; // dossier où sera déplacé le fichier
print_r($_FILES['fichier1']);

$tmp_file = $_FILES['fichier1']['tmp_name'];

if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}

// on vérifie maintenant l'extension

$type_file = $_FILES['fichier1']['type'];

if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
{
exit("Le fichier n'est pas une image");
}

// on copie le fichier dans le dossier de destination
$name_file = $_FILES['fichier1']['name'];
$image_composant=$name_file;

if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}

echo "Le fichier a bien été uploadé";
}

if( isset($_POST['upload_pdf']) )

{
$content_dir = '/var/www/Pdf/'; // dossier où sera déplacé le fichier
print_r($_FILES['fichier2']);

$tmp_file = $_FILES['fichier2']['tmp_name'];

if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}

// on vérifie maintenant l'extension

$type_file = $_FILES['fichier2']['type'];

if( !strstr($type_file, 'pdf') )
{
exit("Le fichier n'est pas un fichier de type pdf");
}

// on copie le fichier dans le dossier de destination
$name_file = $_FILES['fichier2']['name'];
$pdf_composant=$name_file;

if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}

echo "Le fichier a bien été uploadé";

}

// On vérifie si les champs sont vides
if(empty($upload_image) OR empty($upload_pdf))
{
echo '<font color="red">Attention Veuillez Remplir tous les champs !</font>';
}

// Aucun champ n'est vide, on peut enregistrer dans la table
else
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base

mysql_select_db('bdd',$db) or die('Erreur de selection '.mysql_error());

// on écrit la requête sql
$sql = "INSERT INTO composant(id,image_composant, pdf_composant) VALUES('','$image_composant','$pdf_composant')";

// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// on affiche le résultat pour le visiteur
echo 'Votre composant a été ajouté.';

mysql_close(); // on ferme la connexion
}
?>

à chaque fois mon code me dit "Le fichier est introuvable" et j'obtiens les erreurs suivantes :

PHP Notice: Undefined index: fichier

PHP Notice: Undefined index: fichier1

PHP Notice: Undefined index: fichier2

merci par avance

4 réponses

  1. PHP Warning: move_uploaded_file(mon_fichier-.jpg): failed to open stream: Permission denied

    veut dire que tu n'as pas les bonnes permissions pour ecrire dans le répertoire

    fais un chmod 777 sur ce rep
    1. en m'inspirant du tuto j'obtiens les erreur suivantes :

      PHP Warning: move_uploaded_file(): Unable to move '/tmp/phpCVj0QX' to 'mon_image.jpg'

      PHP Warning: move_uploaded_file(mon_fichier-.jpg): failed to open stream: Permission denied

      voici le code :

      <form method="POST" action="ajout_composant.php" enctype="multipart/form-data">
      <!-- On limite le fichier à 100Ko -->
      <input type="hidden" name="MAX_FILE_SIZE" value="900000000">
      Fichier : <input type="file" name="image_composant">
      <input type="submit" name="envoyer" value="Envoyer l'image">
      </form>

      <?php

      if( isset($_POST['envoyer']) )

      $dossier = '/Images';
      $fichier = basename($_FILES['image_composant']['name']);
      $taille_maxi = 900000000;
      $taille = filesize($_FILES['image_composant']['tmp_name']);
      $extensions = array('.png', '.gif', '.jpg', '.jpeg');
      $extension = strrchr($_FILES['image_composant']['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_composant']['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;
      }
      ?>