problème avec barre de progression en ajax

Mammouth du PHP | 506 Messages

27 mai 2021, 19:05

bonjour a tous

j ai un formulaire pour l envois des images tout simple
mais je souhaiterais pouvoir lui ajouter une barre de progression
mais cela ne fonctionne pas (je ne vois pas de barre progressee)...mais l envois de l image lui fonctionne
cela doit être surement un détail, car j ai passe le code dans firefox avec l activateur des erreurs de javascript et tout fonctionne bien

voici mon code de form avant le changement et qui fonctionne , donc l upload de l image fonctionne

Code : Tout sélectionner

<form action="cible-fichier.php?pseudo=<?php echo $pseudo;?>&id=<?php echo $id;?>" method="post" enctype="multipart/form-data"> <div class="form-group"> <label for="fileUpload">Fichier:</label> <input type="file" name="photo" id="fileUpload"> <input type="submit" name="submit" value="Upload"> <p><strong>Note:</strong> Veuillez patienter 1 a 2 minutes pour l upload svp</p> <p><strong>Note:</strong> Seuls les formats .jpg, .jpeg, .jpeg, .gif, .png sont autorisés jusqu'à une taille maximale de 5 Mo.</p> </div> </form>

voici a present le code modifie avec l ajax
le code ajax est un morceau de code fonctionnel que j ai trouve

Code : Tout sélectionner

<form action="cible-fichier.php?pseudo=<?php echo $pseudo;?>&id=<?php echo $id;?>"id="upload_form" enctype="multipart/form-data" method="post"> <div class="form-group"> <label for="fileUpload">Fichier:</label> <input type="file" name="photo" id="file1"> <input type="submit" name="file1" value="Upload" onchange="uploadFile()"> <progress id="progressBar" value="0" max="100" style="width:300px;"></progress> <h3 id="status"></h3> <p id="loaded_n_total"></p> <p><strong>Note:</strong> Veuillez patienter 1 a 2 minutes pour l upload svp</p> <p><strong>Note:</strong> Seuls les formats .jpg, .jpeg, .jpeg, .gif, .png sont autorisés jusqu'à une taille maximale de 5 Mo.</p> </div> </form> </div> <script>function _(el) { return document.getElementById(el); } function uploadFile(){ var file = _("file1").files[0]; // alert(file.name+" | "+file.size+" | "+file.type); var formdata = new FormData(); formdata.append("file1", file); 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", "file_upload_parser.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) { _("status").innerHTML = event.target.responseText; _("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>