Bonjour,
Je crée un formulaire d'upload de fichiers, en se basant sur une barre de progression, je me suis référencé sur cette doc, la page de réception des données (uploadCheck.php) me retourne une session vide:
uploadCheck.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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 <head> <script src="https://code.jquery.com/jquery-3.1.1.js"></script> <script> $(document).ready(function() { //$('.send').click(function(e) { $('input[type=file]').change(function(e) { var file = $('input[type=file]').get(0).files[0]; console.log(file); /* Output File {name: "Foto.png", lastModified: 1472801997000, lastModifiedDate: Fri Sep 02 2016 08:39:57 GMT+0100 (WEST), webkitRelativePath: "", size: 153066 } */ var formdata = new FormData(); //console.log(formdata); // output: FormData {} formdata.append("file", file); formdata.append("size", file.size); console.log(formdata); // output: FormData {} var dloaded = e.loaded; console.log('loaded '+dloaded); // output: loaded undefined $.ajax({ type: "POST", url: "uploadCheck.php", data: formdata, processData: false, dataType: "json", success: function(data) { console.log('data '+data); } // end function // }); // end ajax //var dt = new FormData(this); //console.log(dt); return false; }); }); </script> </head> <body> <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="POST" id="myForm" enctype="multipart/form-data"> <input type="hidden" value="demo" name="<?php echo ini_get("session.upload_progress.name"); ?>"> <input type="file" name="userfile"><br> <input type="submit" value="Start Upload"> </form> </body>
NB: La session est auto activée au serveur, pour les autres paramètres sont:
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 <?php $key = ini_get('session.upload_progress.prefix').'demo'; echo 'key '.$key.'<br>'; print_r($_SESSION); if(!empty($_SESSION[$key])) { echo 'empty'; $donnees = $_SESSION[$key]; $depart= $donnees['start_time']; $maintenant=time(); $delai_up= $maintenant-$depart; $bytes_processed = $donnees['bytes_processed']; $totale_taille = $donnees['content_length']; $avancee=$bytes_processed/$delai_up; $avancee= round($avancee/1024); } else { echo 'not'; $avancee = 0; } echo 'total :'.$totale_taille.' | bytes: '.$bytes_processed.' / delai: '.$delai_up.' => debit: '.$avancee; ?>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 session.upload_progress.enabled = On session.upload_progress.cleanup = Off session.upload_progress.prefix = "upload_progress_" session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" session.upload_progress.freq = "1%" session.upload_progress.min_freq = "1"
Merci a vous
Partager