Probléme d'upload php

Fermé
ssd - 4 janv. 2012 à 16:59
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 5 janv. 2012 à 21:04
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
A voir également:

4 réponses

pas de réponse ?
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
4 janv. 2012 à 18:26
bonsoir,

à la place de /var/www/images

mets /images

ensuite pour la procédure vas voir ce tuto:

https://antoine-herault.developpez.com/tutoriels/php/upload/
0
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
5 janv. 2012 à 21:04
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