Page 1 sur 1

Input type file non envoyé

Posté : 26 juil. 2015, 20:50
par camo.mille
Bonsoir,

Je sèche depuis plusieurs heures sur ce bout de script. Il ne me reconnait pas l'envoi du fichier. if(!empty($_POST['uploaded_file'])) me met toujours qu'il n'y a pas d'image, alors que les autres champs du formulaire fonctionnent.

D'avance merci pour vos lumières.

Code : Tout sélectionner

if (isset($_POST['form1'])) { //s'il y a un lien, on enregistre le fichier sur le serveur if(!empty($_POST['uploaded_file'])) { echo "il y a un fichier"; // Access the $_FILES global variable for this specific file being uploaded // and create local PHP variables from the $_FILES array of information $fileName = $_FILES["uploaded_file"]["name"]; // The file name $fileTmpLoc = $_FILES["uploaded_file"]["tmp_name"]; // File in the PHP tmp folder $fileType = $_FILES["uploaded_file"]["type"]; // The type of file it is $fileSize = $_FILES["uploaded_file"]["size"]; // File size in bytes $fileErrorMsg = $_FILES["uploaded_file"]["error"]; // 0 for false... and 1 for true $fileName = preg_replace('#[^a-z.0-9]#i', '', $fileName); $kaboom = explode(".", $fileName); // Split file name into an array using the dot $fileExt = end($kaboom); // Now target the last array element to get the file extension // $fileName = time().rand().".".$fileExt; // START PHP Image Upload Error Handling -------------------------------------------------- if (!$fileTmpLoc) { // if file not chosen echo "c'est la que ça merde"; exit(); } else if($fileSize > 5242880) { // if file size is larger than 5 Megabytes echo "Erreur: Ton image fait plus de 5 méga"; unlink($fileTmpLoc); // Remove the uploaded file from the PHP temp folder exit(); } else if (!preg_match("/.(gif|jpg|png)$/i", $fileName) ) { // This condition is only if you wish to allow uploading of specific file types echo "Erreur: Ton image n'est pas du .gif, .jpg, ou du .png."; unlink($fileTmpLoc); // Remove the uploaded file from the PHP temp folder exit(); } else if ($fileErrorMsg == 1) { // if file upload error key is equal to 1 echo "ERROR: An error occured while processing the file. Try again."; exit(); } // Création d'un nouveau nom de fichier à faire. Pour remplacer $nomphoto $moveResult = move_uploaded_file($_FILES['uploaded_file']['tmp_name'], 'img/'.$nomphoto); // Check to make sure the move result is true before continuing if ($moveResult != true) { echo "Erreur: Fichier non envoyé. Fait un nouvel essai."; exit(); } } else { echo "il n'y a pas de fichier"; } // enregistrer dans la base : à faire echo "<p>L'article a bien été enregistré. Il reste à le publier. <a href=\"#\">C'est par ici.</a></p>"; } else { print(" <form enctype='multipart/form-data' action=' ".htmlspecialchars($_SERVER['PHP_SELF'])."?l=2&form=1' method='post'> <fieldset> <p> <label class='formulairecontact' for='fichier'>Fichier :</label> <input name='uploaded_file' type='file'/> </p> </fieldset> <input type='submit' name='form1' value='Enregistrer'/> </p> </form>

Re: Input type file non envoyé

Posté : 26 juil. 2015, 20:57
par tof73
c'est pas clair si c'est le second if qui ne donne pas ce que l'on veut ou cela :
if (!$fileTmpLoc) { // if file not chosen
echo "c'est la que ça merde";
exit();
}

Re: Input type file non envoyé

Posté : 26 juil. 2015, 22:49
par moogli
salut

$_POST['uploaded_file'] n'existe pas seulement $_FILES['uploaded_file'] du coup tu peux tester sur $_FILES['uploaded_file'] à la place :)

Tu peux utiliser is_uploaded_file afin de tester s'il s'agit du bon fichier.

@+

Re: [RESOLU] Input type file non envoyé

Posté : 29 juil. 2015, 21:55
par camo.mille
Merci ! Le test sur is_uploaded_file était la solution ! top, merci !