OLD | NEW |
1 <?php | 1 <?php |
2 $name = $_GET['name']; | 2 $name = $_GET['name']; |
3 $stallAt = $_GET['stallAt']; | 3 $stallAt = $_GET['stallAt']; |
4 $stallFor = $_GET['stallFor']; | 4 $stallFor = $_GET['stallFor']; |
5 $mimeType = $_GET['mimeType']; | 5 $mimeType = $_GET['mimeType']; |
6 | 6 |
7 $file = fopen($name, "rb"); | 7 $file = fopen($name, "rb"); |
8 if (!$file) | 8 if (!$file) |
9 die("Cannot open file."); | 9 die("Cannot open file."); |
10 | 10 |
11 header("Content-Type: " . $mimeType); | 11 header("Content-Type: " . $mimeType); |
12 header("Content-Length: " . filesize($name)); | 12 header("Content-Length: " . filesize($name)); |
13 | 13 |
14 if (isset($stallAt) && isset($stallFor)) { | 14 if (isset($stallAt) && isset($stallFor)) { |
15 $stallAt = (int)$stallAt; | 15 $stallAt = (int)$stallAt; |
16 $stallFor = (int)$stallFor; | |
17 if ($stallAt > filesize($name)) | 16 if ($stallAt > filesize($name)) |
18 die("Incorrect value for stallAt."); | 17 die("Incorrect value for stallAt."); |
19 $written = 0; | 18 $written = 0; |
20 while ($written < $stallAt) { | 19 while ($written < $stallAt) { |
21 $write = 1024; | 20 $write = 1024; |
22 if ($write > $stallAt - $written) | 21 if ($write > $stallAt - $written) |
23 $write = $stallAt - $written; | 22 $write = $stallAt - $written; |
24 | 23 |
25 echo(fread($file, $write)); | 24 echo(fread($file, $write)); |
26 $written += $write; | 25 $written += $write; |
27 flush(); | 26 flush(); |
28 ob_flush(); | 27 ob_flush(); |
29 } | 28 } |
30 usleep($stallFor * 1000000); | 29 usleep($stallFor * 1000000); |
31 echo(fread($file, filesize($name) - $stallAt)); | 30 echo(fread($file, filesize($name) - $stallAt)); |
32 } else { | 31 } else { |
33 echo(fread($file, filesize($name))); | 32 echo(fread($file, filesize($name))); |
34 } | 33 } |
35 flush(); | 34 flush(); |
36 ob_flush(); | 35 ob_flush(); |
37 fclose($file); | 36 fclose($file); |
38 ?> | 37 ?> |
OLD | NEW |