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
|
<?php $sub_menu = "900900"; include("./_common.php"); include("./auth_check.php"); // 관리자 권한 체크
$month = date("m"); $day = date("d"); if($month."_alwlsrhksflwk_".$day==$mode){
$date = date("YmdHis"); $tar_file = "{$app_id}_{$date}.tar.gz"; $tar_dir = "../../tar_tmp/{$tar_file}"; $v = "tar -cvzf {$tar_dir} ../../{$app_id}"; shell_exec($v);
if(preg_match("/msie/i", $_SERVER['HTTP_USER_AGENT']) && preg_match("/5\.5/", $_SERVER['HTTP_USER_AGENT'])) { header("content-type: doesn/matter"); header("content-length: ".filesize("$tar_dir")); header("content-disposition: attachment; filename=\"$tar_file\""); header("content-transfer-encoding: binary"); } else { header("content-type: file/unknown"); header("content-length: ".filesize("$tar_dir")); header("content-disposition: attachment; filename=\"$tar_file\""); header("content-description: php generated data"); } header("pragma: no-cache"); header("expires: 0"); flush();
$fp = fopen($tar_dir, 'rb');
// 4.00 대체 // 서버부하를 줄이려면 print 나 echo 또는 while 문을 이용한 방법보다는 이방법이... //if (!fpassthru($fp)) { // fclose($fp); //}
$download_rate = 10;
while(!feof($fp)) { //echo fread($fp, 100*1024); /* echo fread($fp, 100*1024); flush(); */
print fread($fp, round($download_rate * 1024)); flush(); usleep(1000); } fclose ($fp); flush();
unlink($tar_dir); } else { echo "mode=superkey"; } ?>
|