Ajout d une barre de progression sur l upload des images
Résolu/Fermé
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
-
26 mai 2021 à 16:26
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 - 1 juin 2021 à 19:38
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 - 1 juin 2021 à 19:38
A voir également:
- Barre de progression word
- Espace insécable word - Guide
- Supprimer une page word - Guide
- Organigramme word - Guide
- Suivi des modifications word - Guide
- Tableau word - Guide
109 réponses
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
31 mai 2021 à 23:19
31 mai 2021 à 23:19
voici le fichier message complet
https://www.cjoint.com/doc/21_05/KEFvs4XStS2_1.txt
https://www.cjoint.com/doc/21_05/KEFvs4XStS2_1.txt
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
31 mai 2021 à 23:28
31 mai 2021 à 23:28
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
31 mai 2021 à 23:32
31 mai 2021 à 23:32
Attends... je code de tête en m'appuyant sur tes codes ...
Ce n'est quand même pas de ma faute si ils sont bourrés d'erreurs et si tu n'es pas capable de les corriger par toi même ... si ?!!
Quoi qu'il en soit,
peux tu cliquer sur le petit bouton à droite "brut"
NB: J'ai créé un compte "jordane45"
Tu devrais me donner accès à cette page histoire que je puisse aller voir par moi même.. on gagnerait du temps
Ce n'est quand même pas de ma faute si ils sont bourrés d'erreurs et si tu n'es pas capable de les corriger par toi même ... si ?!!
Quoi qu'il en soit,
peux tu cliquer sur le petit bouton à droite "brut"
NB: J'ai créé un compte "jordane45"
Tu devrais me donner accès à cette page histoire que je puisse aller voir par moi même.. on gagnerait du temps
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
31 mai 2021 à 23:42
31 mai 2021 à 23:42
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
31 mai 2021 à 23:56
31 mai 2021 à 23:56
Tu as encore un IF qui n'était pas fermé ( la vérif de la taille de l'image)
Essaye comme ça
Essaye comme ça
<?php // Démarrage SESSION session_start(); //Connexion à la bdd require_once 'base.php'; // Variables/constantes... $allowed = array( "jpg" => "image/jpg", "JPG" => "image/JPG", "jpeg" => "image/jpeg", "JPEG" => "image/JPEG", "gif" => "image/gif", "png" => "image/png", "PNG" => "image/PNG" ); $res = array();// variable qui contiendra les infos à retourner au script JS // récupération PROPRE des variables de type "array" AVANT de les utiliser (j'ai l'impression de radoter vu le nombre de fois que je t'ai déjà donné ce genre de code !!!! ) $getpseudo = !empty($_COOKIE['pseudo']) ? $_COOKIE['pseudo'] : NULL; $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo']: $getpseudo; $id = !empty($_POST['id']) ? $_POST['id']: NULL; $photos = !empty($_FILES["photo"]) ? $_FILES["photo"] : NULL; // Vérifier si le formulaire a été soumis if ($_SERVER["REQUEST_METHOD"] == "POST") { // Vérifie si le fichier a été uploadé sans erreur. if ($photos ){ if( $photos["error"] != 0 ){ $err = 'Erreur : ' . $photo['error']; }else{ $filename = $photos["name"]; $filetype = $photos["type"]; $filesize = $photos["size"]; // Vérifie l'extension du fichier $ext = pathinfo($filename, PATHINFO_EXTENSION); if (!array_key_exists($ext, $allowed)) { $err = 'Erreur : Veuillez sélectionner un format de fichier valide.</br> <a href="javascript:history.back()">Pour recommencer</a>'; } // Vérifie la taille du fichier - 5Mo maximum $maxsize = 5 * 1024 * 1024; if ($filesize > $maxsize){ $err = 'Error: La taille du fichier est supérieure à la limite autorisée.</br> <a href="javascript:history.back()">Pour recommencer</a>'; }else{ // Vérifie le type MIME du fichier if (in_array($filetype, $allowed)) { // Vérifie si le fichier existe avant de le télécharger. if (file_exists("uploads/" . $photos["name"])) { $err = $photos["name"] . ' existe déjà.</br> <a href="javascript:history.back()">Pour recommencer</a>'; } else { if(! move_uploaded_file($photos["tmp_name"], "uploads/" . $photos["name"])){ $err = "Erreur lors de l'upload du fichier"; }else{ $res['message'] = '<style="font-size:22px; margin-left:20%; margin-top:90px;text-align: center;">Votre fichier a été téléchargé avec succès.>'; //préparation de la requête et des variables $sql = 'INSERT INTO galerie_images (pseudo, id_img, nom_img, nom_min) VALUES (:pseudo, :id_img, :nom_img, :nom_min)'; $datas = array( ':pseudo' => $pseudo, ':id_img' => $id, ':nom_img' => $filename, ':nom_min' => $filename ); //exécution de la requêete préparée try{ $req = $bdd->prepare($sql); $req->execute($datas); }catch(Exception $e){ $err = " Erreur dans la requête : " . $e->getMessage(); } } } } else { $err = 'Error: Il y a eu un problème de téléchargement de votre fichier. Veuillez réessayer.</br> <a href="javascript:history.back()">Pour recommencer</a>'; } } } } else { $debug = ['POST'=>$_POST,'FILE'=>$_FILES]; $err = "Error: " . $photos["error"] . " --- " . print_r($debug,true); } } else { $err = "Méthode invalide"; } $res['error'] = $err; // On renvoi la réponse au format JSON echo json_encode($res); exit;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
1 juin 2021 à 00:03
1 juin 2021 à 00:03
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
1 juin 2021 à 00:07
1 juin 2021 à 00:07
Dans l'onglet requête, on peut voir qu'il envoi
On voit qu'il y a un espace en trop après le o
et en effet, il y a une erreur dans le js
A corriger par
Et cette fois.. ça devrait être bon.
form-data; name="pseudo "
On voit qu'il y a un espace en trop après le o
et en effet, il y a une erreur dans le js
formdata.append("pseudo ", pseudo );
A corriger par
formdata.append("pseudo", pseudo );
Et cette fois.. ça devrait être bon.
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
1 juin 2021 à 00:06
1 juin 2021 à 00:06
mais cette fois les images vont bien dans le dossier uploads
par contre rien dans la base de donnée
par contre rien dans la base de donnée
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
1 juin 2021 à 00:17
1 juin 2021 à 00:17
je n en reviens pas cela fonctionne enfin
tout cela pour un espace de trop
un très très grand merci jordane tu as fini par solutionner mon problème
et de nouveau j ai encore appris pas mal de choses
toutes mes félicitations pour cet exploit
concernant les codes de ces journées de pêches c est une personne de plus de 70 ans qui me les avais fais ...
mais bon je le remercie aussi
cela était au début ou je ne savais pas encore que le php commençait par des balises
pour te dire ...
mais je me rends compte que je vais devoir les reprendre une a une et améliorer le codage
encore merci
passe une bonne nuit
tout cela pour un espace de trop
un très très grand merci jordane tu as fini par solutionner mon problème
et de nouveau j ai encore appris pas mal de choses
toutes mes félicitations pour cet exploit
concernant les codes de ces journées de pêches c est une personne de plus de 70 ans qui me les avais fais ...
mais bon je le remercie aussi
cela était au début ou je ne savais pas encore que le php commençait par des balises
pour te dire ...
mais je me rends compte que je vais devoir les reprendre une a une et améliorer le codage
encore merci
passe une bonne nuit
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
1 juin 2021 à 11:39
1 juin 2021 à 11:39
bonjour a tous
voila a présent je souhaiterais pouvoir ajouter un commentaire a la photo
es ce possible de le faire de manière simple sans devoir changer tout le code
voila a présent je souhaiterais pouvoir ajouter un commentaire a la photo
es ce possible de le faire de manière simple sans devoir changer tout le code
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
1 juin 2021 à 11:58
1 juin 2021 à 11:58
En même temps que tu envoies la photo ?
Si oui, il suffit de faire comme pour le pseudo
Si oui, il suffit de faire comme pour le pseudo
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
1 juin 2021 à 12:33
1 juin 2021 à 12:33
merci pour l aide
oui en temps que l envois de la photo
je viens d essayer mais bien évidement cela ne fonctionne pas
je dois ouvrir un nouveau sujet ?
oui en temps que l envois de la photo
je viens d essayer mais bien évidement cela ne fonctionne pas
je dois ouvrir un nouveau sujet ?
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
1 juin 2021 à 12:53
1 juin 2021 à 12:53
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
1 juin 2021 à 13:05
1 juin 2021 à 13:05
Le problème ne vient pas du code JS mais du fichier php
Donc, pour voir ce qu'il se passe... ouvre le >post et regarde l'onglet reponse
Donc, pour voir ce qu'il se passe... ouvre le >post et regarde l'onglet reponse
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
1 juin 2021 à 13:11
1 juin 2021 à 13:11
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
1 juin 2021 à 13:14
1 juin 2021 à 13:14
Tu as modifié quoi dans le fichier php ?
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
1 juin 2021 à 13:20
1 juin 2021 à 13:20
dans la page fichier-from
j ai ajouter ceci
et j ai modifier ceci
et j ai bien évidement ajouter ceci en html
j ai ajouter ceci
$contenu = !empty($_FILES["contenu"]) ? $_FILES["contenu"] : NULL;
et j ai modifier ceci
//préparation de la requête et des variables $sql = 'INSERT INTO galerie_images (pseudo, id_img, nom_img, nom_min, contenu ) VALUES (:pseudo, :id_img, :nom_img, :nom_min, :contenu)'; $datas = array( ':pseudo' => $pseudo, ':id_img' => $id, ':nom_img' => $filename, ':nom_min' => $filename ':contenu ' => $contenu );
et j ai bien évidement ajouter ceci en html
<div class="form-group"> <label for="contenu">Le message</label> <textarea name="contenu"class="form-control" id="contenu" rows="3" placeholder="Message..." ></textarea> </div>
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
1 juin 2021 à 13:25
1 juin 2021 à 13:25
voila j ai trouve l erreur
il manquait une virgule a $filename
mais j ai une autre erreur
j essaye de trouver ...
il manquait une virgule a $filename
$datas = array( ':pseudo' => $pseudo, ':id_img' => $id, ':nom_img' => $filename, ':nom_min' => $filename, ':contenu' => $contenu );
mais j ai une autre erreur
j essaye de trouver ...
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
1 juin 2021 à 13:30
1 juin 2021 à 13:30
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
1 juin 2021 à 13:45
1 juin 2021 à 13:45
ben ça te dit que la colonne contenu ne peut pas être vide dans la bdd.
Actuellement, si tu ne remplis pas de commentaire, ça essaye de mettre NULL dans la bdd.
A la place, il faudrait mettre une chaine vide ""
Avec quelle ligne de code initialises tu la variable pour le commentaire dans le fichier php ?
La valeur par défaut est à NULL je suppose.
Actuellement, si tu ne remplis pas de commentaire, ça essaye de mettre NULL dans la bdd.
A la place, il faudrait mettre une chaine vide ""
Avec quelle ligne de code initialises tu la variable pour le commentaire dans le fichier php ?
La valeur par défaut est à NULL je suppose.
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
1 juin 2021 à 13:54
1 juin 2021 à 13:54
merci pour les renseignements et l explication jordane
lors de l essai j ai mis un commentaire ...
avec celle ci
et je ne sais pas si cela est valable mais vu le codage foireux que la personne agee m a fait
pour que le code fonctionne j a vais mis dans ma base de donnée a la colonne contenu
tel que défini 0
lors de l essai j ai mis un commentaire ...
avec celle ci
$contenu = !empty($_FILES["contenu"]) ? $_FILES["contenu"] : NULL;
et je ne sais pas si cela est valable mais vu le codage foireux que la personne agee m a fait
pour que le code fonctionne j a vais mis dans ma base de donnée a la colonne contenu
tel que défini 0
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
1 juin 2021 à 14:19
1 juin 2021 à 14:19
$contenu = !empty($_FILES["contenu"]) ? $_FILES["contenu"] : "";
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
1 juin 2021 à 14:35
1 juin 2021 à 14:35
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
1 juin 2021 à 14:43
1 juin 2021 à 14:43
au niveau du JS .. tu as ajouté le commentaire également dans l'envoi ajax ?
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
Modifié le 1 juin 2021 à 14:50
Modifié le 1 juin 2021 à 14:50
il me manque peut être la VAR contenu
autrement je ne vois pas bien ce que j aurais oublie
var contenu = _("contenu").contenu[0];
autrement je ne vois pas bien ce que j aurais oublie
<script > //--------------------------------------------------------// //--------------------------------------------------------// var pseudo = '<?php echo $pseudo;?>'; var id= '<?php echo $id ;?>'; //var contenu = '<?php echo $contenu ;?>'; console.log('ID',id,'PSEUDO',pseudo); // pour voir si les variables se remplissent bien dans la console;.. function _(el) { return document.getElementById(el); } function uploadFile(){ var file = _("photo").files[0]; var formdata = new FormData(); formdata.append("photo", file); formdata.append("pseudo", pseudo ); formdata.append("id", id); formdata.append("contenu", contenu); //le temps des tests : alert('pseudo:' + pseudo + ' id: ' + id+ ' contenu: ' + contenu); console.log('ID',id,'PSEUDO',pseudo,'CONTENU',contenu); // pour voir si les variables se remplissent bien dans la console;.. var ajax = new XMLHttpRequest(); ajax.upload.addEventListener("progress", progressHandler, false); ajax.addEventListener("load", completeHandler, false); ajax.addEventListener("error", errorHandler, false); ajax.addEventListener("abort", abortHandler, false); ajax.open("POST", "cible-fichier.php"); // http://www.developphp.com/video/JavaScript/File-Upload-Progress-Bar-Meter-Tutorial-Ajax-PHP //use file_upload_parser.php from above url ajax.send(formdata); } function progressHandler(event) { _("loaded_n_total").innerHTML = "Uploaded " + event.loaded + " bytes of " + event.total; var percent = (event.loaded / event.total) * 100; _("progressBar").value = Math.round(percent); _("status").innerHTML = Math.round(percent) + "% uploaded... please wait"; } function completeHandler(event) { let res = typeof(event.target.responseText)!='undefined' ? JSON.parse(event.target.responseText) : ""; let message = typeof(res.message)!='undefined' ? res.message : ""; let error = typeof(res.error)!='undefined' ? res.error : null; _("status").innerHTML = error ? error : message; _("progressBar").value = 0; //wil clear progress bar after successful upload } function errorHandler(event) { _("status").innerHTML = "Upload Failed"; } function abortHandler(event) { _("status").innerHTML = "Upload Aborted"; } </script>
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
1 juin 2021 à 14:52
1 juin 2021 à 14:52
ben oui
a mettre avant la ligne 22 bien entendu.
a mettre avant la ligne 22 bien entendu.
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
1 juin 2021 à 15:04
1 juin 2021 à 15:04
j ai essaye la modification suivante jordane
mais cela ne passe pas
apparemment j ai du mal définir la variable
mais cela ne passe pas
apparemment j ai du mal définir la variable
function uploadFile(){ var file = _("photo").files[0]; var contenu = _("contenu").contenu[0]; var formdata = new FormData(); formdata.append("photo", file); formdata.append("pseudo", pseudo ); formdata.append("id", id); formdata.append("contenu", contenu); //le temps des tests : alert('pseudo:' + pseudo + ' id: ' + id+ ' contenu: ' + contenu); console.log('ID',id,'PSEUDO',pseudo,'CONTENU',contenu); // pour voir si les variables se remplissent bien dans la console;..
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
1 juin 2021 à 15:30
1 juin 2021 à 15:30
Il vient d'où ce [0] ?
As tu regardé ce que fait la fonction _() et ce qu'elle retourne ?
As tu regardé ce que fait la fonction _() et ce qu'elle retourne ?
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
1 juin 2021 à 16:54
1 juin 2021 à 16:54
euhhh je sais pas jordane j ai fait comme avec la variable file
comment je peux voir ce que cette variable retourne avec un var_dump ??
car avec ceci
cela ne fonctionne pas car on bloque sur la variable contenu
d ailleurs le message dans la console est clair cela ce passe bien dans
Uncaught ReferenceError: uploadFile is not defined
j ai aussi essaye avec cela
dans l espoir de voir apparaître la variable contenu
comment je peux voir ce que cette variable retourne avec un var_dump ??
car avec ceci
console.log('ID',id,'PSEUDO',pseudo,'CONTENU',contenu); // pour voir si les variables se remplissent bien dans la console;..
cela ne fonctionne pas car on bloque sur la variable contenu
d ailleurs le message dans la console est clair cela ce passe bien dans
Uncaught ReferenceError: uploadFile is not defined
j ai aussi essaye avec cela
var file = _("photo").files[0]; var contenu = _("contenu").contenu; var contenu = '<?php echo $contenu ;?>'; var formdata = new FormData(); formdata.append("photo", file); formdata.append("pseudo", pseudo ); formdata.append("id", id); formdata.append("contenu", contenu);
dans l espoir de voir apparaître la variable contenu
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
1 juin 2021 à 17:05
1 juin 2021 à 17:05
Je ne t'ai pas demandé de savoir ce que contenait la variable contenu mais si tu avais regarder le fonctionnement de la fonction _()
Histoire de comprendre ce qu'elle fait et ce qu'elle retourne comme type de variable...
Est-ce que au moins tu as trouvé cette fonction dans ton code...
Petit indice, elle se trouve au début de ton JavaScript..
Histoire de comprendre ce qu'elle fait et ce qu'elle retourne comme type de variable...
Est-ce que au moins tu as trouvé cette fonction dans ton code...
Petit indice, elle se trouve au début de ton JavaScript..
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
1 juin 2021 à 17:27
1 juin 2021 à 17:27
honnêtement je ne sais pas du tout a quoi sert cette variable et c est que depuis le début j ai envie de la retirer mdrrr
d après une recherche sur le web
La méthode JavaScript getElementById() permet de récupérer les informations d'une balise identifiée par son id.
donc j en aurais besoin de deux ..puisque deux id
function _(el) { return document.getElementById(el); }
d après une recherche sur le web
La méthode JavaScript getElementById() permet de récupérer les informations d'une balise identifiée par son id.
donc j en aurais besoin de deux ..puisque deux id
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
1 juin 2021 à 17:36
1 juin 2021 à 17:36
ça ne récupère pas les "infos" mais ça "pointe" l'objet
La fonction _(el) est juste un raccourci pour ne pas avoir à écrire le code entier à chaque fois.
Donc,
En gros, si tu as un input dont l'id est "content"
Ici, element est une "représentation" de ton input.
Un input dispose de propriétés et de méthodes.
Pour en récupérer le contenu, on va appeller la propriété "value"
Si on reprend ton code js :
La fonction _(el) est juste un raccourci pour ne pas avoir à écrire le code entier à chaque fois.
Donc,
En gros, si tu as un input dont l'id est "content"
var element = document.getElementById("content");
Ici, element est une "représentation" de ton input.
Un input dispose de propriétés et de méthodes.
Pour en récupérer le contenu, on va appeller la propriété "value"
Si on reprend ton code js :
var input_contenu = _("contenu"); var contenu =input_contenu.value;
Modifié le 31 mai 2021 à 23:23
REPONSE
!!!!!Fais un effort .... on en est déjà à 140 messages pour un truc qui aurait du en prendre au max 10 !!