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:


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>
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
 
<?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;
 
 
?>
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
 
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