Example of the structure of the progress upload array.
<form action="/?originalUrl=https%3A%2F%2Fwww.php.net%2F%26quot%3Bupload.php%26quot%3B%2520method%3D%26quot%3BPOST%26quot%3B%2520enctype%3D%26quot%3Bmultipart%2Fform-data%26quot%3B%26gt%3B%2520%26lt%3Binput%2520type%3D%26quot%3Bhidden%26quot%3B%2520name%3D%26quot%3B%26lt%3B%3Fphp%2520echo%2520ini_get(%26quot%3Bsession.upload_progress.name%26quot%3B)%3B%2520%3F%26gt%3B%26quot%3B%2520value%3D%26quot%3B123%26quot%3B%2520%2F%26gt%3B%2520%26lt%3Binput%2520type%3D%26quot%3Bfile%26quot%3B%2520name%3D%26quot%3Bfile1%26quot%3B%2520%2F%26gt%3B%2520%26lt%3Binput%2520type%3D%26quot%3Bfile%26quot%3B%2520name%3D%26quot%3Bfile2%26quot%3B%2520%2F%26gt%3B%2520%26lt%3Binput%2520type%3D%26quot%3Bsubmit%26quot%3B%2520%2F%26gt%3B%26lt%3B%2Fform%26gt%3B%253C%2Fpre">
The data stored in the session will look like this:
<?php
$_SESSION["upload_progress_123"] = array(
"start_time" => 1234567890, // The request time
"content_length" => 57343257, // POST content length
"bytes_processed" => 453489, // Amount of bytes received and processed
"done" => false, // true when the POST handler has finished, successfully or not
"files" => array(
0 => array(
"field_name" => "file1", // Name of the <input/> field
// The following 3 elements equals those in $_FILES
"name" => "foo.avi",
"tmp_name" => "/tmp/phpxxxxxx",
"error" => 0,
"done" => true, // True when the POST handler has finished handling this file
"start_time" => 1234567890, // When this file has started to be processed
"bytes_processed" => 57343250, // Number of bytes received and processed for this file
),
// An other file, not finished uploading, in the same request
1 => array(
"field_name" => "file2",
"name" => "bar.avi",
"tmp_name" => NULL,
"error" => 0,
"done" => false,
"start_time" => 1234567899,
"bytes_processed" => 54554,
),
)
);