Bonjour,
j'espéres mon titre a peut prés correcte.
Pour avoir une image (de progression) pendant un upload,
j'ais fait un AJAX
Seulement je comprends bien que mon enctype du form ne sert plus et donc
1) je parcours
2) J'ais bien mon gif
3) il s'arréte avec le timeout mais l'image n'est pas présente,
Bien sur je comprends qu'il faut sans doute passer le POST autrement
en ajax mais je n'ais rien trouvé
voici mes php pret a l'emploie (sauf chemin destination a changer
ajax_upload.php
ajax_upload_pdo.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 <script type="text/javascript"> function image() { document.getElementById('load').style.display="none"; } function maFonctionAjax(files1) { var MonAjax; if (window.XMLHttpRequest){ MonAjax = new XMLHttpRequest();} else if (window.ActiveXObject) {MonAjax = new ActiveXObject('Microsoft.XMLHTTP');} else { alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); MonAjax = false; } MonAjax.open('POST',"ajax_upload_pdo.php",true); MonAjax.onreadystatechange = function() { if (MonAjax.readyState == 4 && MonAjax.status==200) { if (document.getElementById) { document.getElementById('LeRetour').innerHTML='<font color=GREEN>'+MonAjax.responseText+'</font>'; setTimeout("image()", 2000); } } else{ document.getElementById('load').style.display="inline"; } } MonAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded'); MonAjax.send('&files1='+files1); } </SCRIPT> <div class='centre0'> <br /><br /><br /> <img src='x_logos/ajaxloader.gif' style='display:none' id='load' name='load' /> <br /><br /><br /> <form method='post' onsubmit='maFonctionAjax(this.files1.value);return false' action='' enctype='multipart/form-data'> Votre avatar <input class='le213' name='files1' id='files1' type='file' /><br /> <br /><br /> <input type=submit value='envoyer' /><br /> </form> <div id='LeRetour'></div> </div> </body></html>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 <?PHP header('Content-type: text/html; charset=ISO-8859-1'); if (isset($_FILES['files1'])) $Limage=trim($_FILES['files1']['name']); else $Limage=""; $message=$Limage; if( $Limage!="" ) { $poid_max="40000"; $destin="x_logos/"; $taille = getimagesize($_FILES['files1']['tmp_name']); $poid = filesize($_FILES['files1']['tmp_name']); $message=""; if(substr($Limage,-3) !="jpg") {$message="L image doit etre au format jpeg jpg";} if ($poid>$poid_max) {$message=" l image est trop lourde ... 40 Ko maxi";} if ($poid<=$poid_max && $message=="") { // === on supprime les accents et les espaces du nom de l'image $Limage = strtr($Limage, "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ", "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn"); // === on supprime les espaces $Limage=str_replace(" ","_",$Limage); // === on met en minuscule $Limage=strtolower($Limage); $newnom=$destin.$Limage; if (file_exists($destin.$Limage)) { $message="L image est déjas sur le site web"; } else { copy($_FILES['files1']['tmp_name'],$destin.$Limage); $imagefile=$destin.$Limage; $src_img = imagecreatefromjpeg($imagefile); $message="L image ".$newnom." est copiée"; } } } echo $message ." ".$Limage; ?>
Partager