Upload une image
Résolu/Fermé
A voir également:
- Upload une image
- Image iso - Guide
- Comment agrandir une image - Guide
- Acronis true image - Télécharger - Sauvegarde
- Légender une image - Guide
- Youtube upload - Télécharger - Diffusion
8 réponses
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
17 août 2021 à 17:09
17 août 2021 à 17:09
Bonjour,
Comme je te l'ai déjà indiqué ....
Tu dois utiliser les balises de code pour poster du code sur le forum.
Explications ( à lire entièrement !! ) disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Pour ce qui est de ton souci...
Ajoute donc un IF autour de la fonction moveuploadedfile ...
et met en commentaire la redirection pour voir les éventuelles erreurs.
Pense aussi à activer l'affichage des erreurs php.
Je t'invite, par ailleurs, à lire et à appliquer le contenu de ce lien https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Et pour éviter tout souci futur (même si ce n'est pas le cas pour l'instant... ) avec tes requêtes, le contenu de ce lien :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Comme je te l'ai déjà indiqué ....
Tu dois utiliser les balises de code pour poster du code sur le forum.
Explications ( à lire entièrement !! ) disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Pour ce qui est de ton souci...
Ajoute donc un IF autour de la fonction moveuploadedfile ...
$tmp_name = !empty($_FILES["g"]['tmp_name']) ? $_FILES["g"]['tmp_name']: NULL; if (! move_uploaded_file($tmp_name, 'uploads/'.$g)) { echo " Error :" . $tmp_name ; }
et met en commentaire la redirection pour voir les éventuelles erreurs.
Pense aussi à activer l'affichage des erreurs php.
Je t'invite, par ailleurs, à lire et à appliquer le contenu de ce lien https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Et pour éviter tout souci futur (même si ce n'est pas le cas pour l'instant... ) avec tes requêtes, le contenu de ce lien :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
j'ai essayer mais sa ne fonctionne toujours pas
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
18 août 2021 à 13:35
18 août 2021 à 13:35
Si tu ne nous montres pas le code modifié que tu as essayé... Impossible de trouver ce qui n'est pas bon..
$g=isset($_FILES["g"]["tmp_name"])?$_FILES["g"]["tmp_name"]:"";if(!move_uploaded_file($g,'uploads/'.$g)){ echo "error:".$g; } $requete= "INSERT INTO emploie(nom_entr, poste, ville, type_contrat,nbre,img_emploi,date_limite,cmt_post,email_emploi,site,whatsapp,sms,appel) VALUES ('".$a."','".$b."','".$c."','".$z."','".$d."','".$g."','".$e."','".$f."' ,'".$h."','".$i."','".$j."','".$k."','".$l."')"; $params=array($a,$b,$c,$z,$d,$g,$e,$f,$h,$i,$j,$k,$l); $resultat=$bd->prepare($requete); $resultat->execute($params); header( 'location:index.php?reg_err=offre_publier_avec_succes'); ?>
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
>
daryle
18 août 2021 à 15:04
18 août 2021 à 15:04
Bonjour,
L'attribut enctype="multipart/form-data" a bien été ajouté sur la balise html form ?
https://www.php.net/manual/fr/features.file-upload.post-method.php#example-413
L'attribut enctype="multipart/form-data" a bien été ajouté sur la balise html form ?
https://www.php.net/manual/fr/features.file-upload.post-method.php#example-413
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
>
daryle
18 août 2021 à 15:15
18 août 2021 à 15:15
alors bon..; c'est le code COMPLET qu'il nous faut .. pas juste quelques morceaux .. sinon on ne s'en sortira jamais.
voici mon formulaire
<form action="envoie.php" method="POST" enctype="multipart/form-data"> <div class="container my-4" style=" text-align: center; "> <div class="modal fade" id="modalSubscriptionForm" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content" style="overflow-y:scroll;"> <div class="modal-header text-center"> <h4 class="modal-title w-100 font-weight-bold">crée l'annonce</h4> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body mx-3"> <div class="md-form mb-5"> <label for="text">nom de l'entreprise</label> <input name="a" style=" border: 2px solid skyblue;" type="text" id="form3" class="form-control validate" placeholder="entrer le nom de votre entreprise" required > </div> <div class="md-form mb-5"> <label for="text">poste</label> <input style=" border: 2px solid skyblue;" name="b" type="text" id="form3" class="form-control validate" placeholder="nom du poste"required > </div> <div class="md-form mb-5"> <label for="text">ville</label> <input name="c" style=" border: 2px solid skyblue;" type="text" id="form3" class="form-control validate" placeholder="entrer la ville de l'offre'"required > </div> <div class="md-form mb-5"> <select name="z" style=" border: 2px solid skyblue; height: 50px;" id="form3" class="form-control validate"required > <option > type de contrat</option> <option > CDI</option> <option > CDD</option> <option > stage accademique</option> <option> stage proffesionnel</option> <option > stage pre-emploi</option> </select> </div> <div class="md-form mb-5"> <label for="text">nombre de place</label> <input name="d" style=" border: 2px solid skyblue;" type="number" id="form3" class="form-control validate" placeholder=" le nombre de place disponible"required > </div> <div class="md-form mb-5"> <label for="text">date limite</label> <input name="e" style=" border: 2px solid skyblue;" type="date" id="form3" class="form-control validate" placeholder="date limite pour postuler"required > </div> <div class="md-form mb-5"> <label for="text">comment postulerr</label> <!-- <input type="text" id="form3" class="form-control validate" placeholder=" decrivez les conditions et comment postulez "> --> <textarea name="f" required placeholder=" decrivez les conditions pour postuler et comment postulez " style=" width: 400px;height: 150px; border: 2px solid skyblue;"></textarea> </div> <div class="md-form mb-5"> <label for="text">image illustatif</label> <input name="g" value="100000" style=" border: 2px solid skyblue;" type="file" id="form3" class="form-control validate"required > </div> <div class="md-form mb-5"> <label for="text">comment vous contacter</label><br><br> <label for="text">email</label> <input name="h" style=" border: 2px solid skyblue;" type="email" id="form2" class="form-control validate" placeholder="votre adresse email"> <label for="text">site internet</label> <input name="i" style=" border: 2px solid skyblue;" type="url" id="form2" class="form-control validate" placeholder="le lien de votre site web"> <label for="text"> whatsapp</label> <input name="j" style=" border: 2px solid skyblue;" type="tel" id="form2" class="form-control validate" placeholder=" votre numero whatsapp"> <label for="text">sms</label> <input name="k" style=" border: 2px solid skyblue;" type="tel" id="form2" class="form-control validate" placeholder=" votre numero pour sms"> <label for="text" >appel</label> <input name="l" style=" border: 2px solid skyblue;"type="tel" id="form2" class="form-control validate" placeholder=" vottre numero pour appel"> </div> </div> <div class="modal-footer d-flex justify-content-center"> <input type="submit" name="submit" value="publiez votre annonce"style=" background-color:rgb(7, 196, 48); border-radius: 10px; width: 200px; height: 50px; "> </div> </div> </div> </div> <div class="text-center"> <a href="" class="btn btn-default btn-rounded mb-4" data-toggle="modal" data-target="#modalSubscriptionForm" style=" background-color: orchid; border:black; color:white; ">publiez votre offre</a> </div> </div> </form>
voici mon code php
<?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); $bd=new PDO('mysql:host=localhost;dbname=afrijob','root','manuella2001'); $request="SELECT * FROM emploie"; $resultat=$bd->query($request); $a=isset($_POST["a"])?$_POST["a"]:""; $b=isset($_POST["b"])?$_POST["b"]:""; $c=isset($_POST["c"])?$_POST["c"]:""; $z=isset($_POST["z"])?$_POST["z"]:""; $d=isset($_POST["d"])?$_POST["d"]:""; $e=isset($_POST["e"])?$_POST["e"]:""; $f=isset($_POST["f"])?$_POST["f"]:""; $g=isset($_FILES["g"]["tmp_name"])?$_FILES["g"]["tmp_name"]:""; $h=isset($_POST["h"])?$_POST["h"]:""; $i=isset($_POST["i"])?$_POST["i"]:""; $j=isset($_POST["j"])?$_POST["j"]:""; $k=isset($_POST["k"])?$_POST["k"]:""; $l=isset($_POST["l"])?$_POST["l"]:""; if(!move_uploaded_file($g,'uploads/'.$g)){ echo "error:".$g; } $requete= "INSERT INTO emploie(nom_entr, poste, ville, type_contrat,nbre,img_emploi,date_limite,cmt_post,email_emploi,site,whatsapp,sms,appel) VALUES ('".$a."','".$b."','".$c."','".$z."','".$d."','".$g."','".$e."','".$f."' ,'".$h."','".$i."','".$j."','".$k."','".$l."')"; $params=array($a,$b,$c,$z,$d,$g,$e,$f,$h,$i,$j,$k,$l); $resultat=$bd->prepare($requete); $resultat->execute($params); header( 'location:index.php?reg_err=offre_publier_avec_succes'); ?>
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
>
daryle
18 août 2021 à 15:24
18 août 2021 à 15:24
Je vois que tu n'as pas appliqué les consignes concernant PDO
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Et que tu n'as pas non plus désactivé la redirection à la fin de ton script ( ce qui t'empêche de voir les éventuelles erreurs... )
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Et que tu n'as pas non plus désactivé la redirection à la fin de ton script ( ce qui t'empêche de voir les éventuelles erreurs... )
daryle
>
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
18 août 2021 à 15:33
18 août 2021 à 15:33
pour les erreurs j'ai fais mais pour la redirection j'ai pas compris comment faire
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
>
daryle
18 août 2021 à 15:58
18 août 2021 à 15:58
Ben tu supprimes ou tu lets en commentaire la ligne 29
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je fais et voici le message que j'ai reçu
Avertissement : move_uploaded_file(uploads//tmp/phppaSu7D) : échec de l'ouverture du flux : Aucun fichier ou répertoire de ce type dans /var/www/public/afrijob/envoie.php à la ligne 21
Avertissement : move_uploaded_file() : Impossible de déplacer '/tmp /phppaSu7D' vers 'uploads//tmp/phppaSu7D' dans /var/www/public/afrijob/envoie.php à la ligne 21 erreur :/tmp/phppaSu7D
normalement l'image doit être transferer a ladresse /var/www/public/afrijob/uploads mais la c'est plutôt /var/www/public/afrijob/envoie.php
Avertissement : move_uploaded_file(uploads//tmp/phppaSu7D) : échec de l'ouverture du flux : Aucun fichier ou répertoire de ce type dans /var/www/public/afrijob/envoie.php à la ligne 21
Avertissement : move_uploaded_file() : Impossible de déplacer '/tmp /phppaSu7D' vers 'uploads//tmp/phppaSu7D' dans /var/www/public/afrijob/envoie.php à la ligne 21 erreur :/tmp/phppaSu7D
normalement l'image doit être transferer a ladresse /var/www/public/afrijob/uploads mais la c'est plutôt /var/www/public/afrijob/envoie.php
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
Modifié le 18 août 2021 à 17:22
Modifié le 18 août 2021 à 17:22
Peux tu tester ce script
Bien sûr, Si le souci persiste.. il faudra également vérifier que ton répertoire temp existe et a les droits en écriture par le user php
Ton serveur web est sous quel OS ? ( tu es en LOCAL sur ton ordi ou sur un "vrai" serveur ? )
Qu'as tu dans le php.ini au niveau de la ligne upload_tmp_dir
<?php //---------------------------------// // Affichage des erreurs PHP //---------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //---------------------------------// //connexion à la base avec activation des erreurs PDO //---------------------------------// try { $bdd = new PDO('mysql:host=localhost;dbname=afrijob', 'root', 'manuella2001'); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch (PDOException $e) { die('Erreur : ' . $e->getMessage()); } //---------------------------------// // FONCTIONS //---------------------------------// function getPost($varName, $defaultValue = "") { return isset($_POST[$varName]) ? $_POST[$varName] : $defaultValue; } function getFiles($fieldFileName) { return !empty($_FILES[$fieldFileName]) ? $_FILES[$fieldFileName] : NULL; } function moveFile($fieldFileName, $uploadDir = 'upload/') { $maxUploadFileSize = 100000; $phpFileUploadErrors = array( 0 => 'There is no error, the file uploaded with success', 1 => 'The uploaded file exceeds the upload_max_filesize directive in php.ini', 2 => 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form', 3 => 'The uploaded file was only partially uploaded', 4 => 'No file was uploaded', 6 => 'Missing a temporary folder', 7 => 'Failed to write file to disk.', 8 => 'A PHP extension stopped the file upload.', ); // récupération propre des variables avant de les utiliser $F = getFiles($fieldFileName); $fileTmpPath = $F['tmp_name']; $fileName = $F['name']; $fileSize = $F['size']; $fileType = $F['type']; // Si tu veux vérifier le type mime du fichier.. //on vérifie qu'il n'y a pas d'erreur dans le $_FILES $error = !empty($F['error']) ? $phpFileUploadErrors[$F['error']] : NULL; if ($error) { echo $error; return false; } if (!is_dir($uploadDir)) { // si le dossier de destination n'existe pas on le créé ! mkdir($uploadDir, 0755, true); } // on vérifie que le répertoire de déstination est accessible en écriture if (!is_writable($uploadDir)) { echo "Permission denied on " . $uploadDir; return false; } // on vérifie la taille du fichier envoyé if ($fileSize > $maxUploadFileSize) { echo "file Size Error : " . $fileSize; return false; } $dest_path = $uploadDir . $fileName; //On vérifie que le fichier s'est chargé sur le serveur if (!is_uploaded_file($fileTmpPath)) { echo "upload file error "; return false; } //On déplace le fichier dans son répertoire finale if (move_uploaded_file($fileTmpPath, $dest_path)) { return $fileName; } else { echo 'There was some error moving the file to upload directory. Please make sure the upload directory is writable by web server.'; return false; } } //---------------------------------// // Début du script : //---------------------------------// //récupération des variables POST et FILES $a = getPost('a'); $b = getPost('b'); $c = getPost('c'); $d = getPost('d'); $e = getPost('e'); $f = getPost('f'); $h = getPost('h'); $i = getPost('i'); $j = getPost('j'); $k = getPost('k'); $l = getPost('l'); $z = getPost('z'); //on upload le fichier $g = moveFile('g', 'uploads/'); //Si il s'est bien uploadé... if ($g) { try { $requete = "INSERT INTO emploie(nom_entr, poste, ville, type_contrat,nbre,img_emploi,date_limite,cmt_post,email_emploi,site,whatsapp,sms,appel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)"; $params = array($a, $b, $c, $z, $d, $g, $e, $f, $h, $i, $j, $k, $l); } catch (Exception $ex) { $resultat = $bdd->prepare($requete); $resultat->execute($params); header('location:index.php?reg_err=offre_publier_avec_succes'); } } else { echo "<br>Error !"; exit; }
Bien sûr, Si le souci persiste.. il faudra également vérifier que ton répertoire temp existe et a les droits en écriture par le user php
Ton serveur web est sous quel OS ? ( tu es en LOCAL sur ton ordi ou sur un "vrai" serveur ? )
Qu'as tu dans le php.ini au niveau de la ligne upload_tmp_dir
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
>
daryle
Modifié le 18 août 2021 à 19:29
Modifié le 18 août 2021 à 19:29
Et bien ça veut dire que ton répertoire n'a pas les autorisations en écriture
Assure-toi qu'il ait les permissions en 7 5 5 par exemple
Assure-toi qu'il ait les permissions en 7 5 5 par exemple
merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii beaucoup avec le message d'erreur je suis aller dans mon dossier uploads sur propriété et j'ai réglé le partage en local et j'ai ressaye et cela fonctionne normalement
en fait le pb venais de mon OS
merci pour votre aide vraiment c'etais ma première fois dans un forum et j'ai été satisfaite
en fait le pb venais de mon OS
merci pour votre aide vraiment c'etais ma première fois dans un forum et j'ai été satisfaite
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
Modifié le 18 août 2021 à 20:08
Modifié le 18 août 2021 à 20:08
Pour tes prochains codes, inspires toi quand même de celui que je t'ai donné...
Bonne soirée.
Bonne soirée.