Probléme d'upload php

ssd -  
Alain_42 Messages postés 5413 Statut Membre -
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. ssd
     
    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;
    }
    ?>
    0
  2. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
    0