/home/mjc1/public_html/j3demo/webhard/file_zip_download.php


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
71
72
73
74
75
<?php
$no_login 
"Y";
$dir ".";
include_once(
$dir."/_common.php");

if(
$id_cust==''){ $id_cust "webhard"; }

$session_key get_microtime();
//$session_key = "123456789";

$dest "/tmp/{$session_key}";
@
mkdir($destG5_DIR_PERMISSION);

//$sql = "select * from webhard where idx in (96,97)";
$sql "select * from webhard where idx in ($idxs)";
$res mysql_query($sql,$connect_j3);
$cnt 0;
while(
$info=mysql_fetch_array($res)){
    
$ori_file $info['b_realpos'];
    
$des_file "{$dest}/{$info['b_oriname']}";
    
copy($ori_file,$des_file);
    
$cnt++;
}

if(
$cnt==0){ exit; }

$zip_file "{$dest}/{$id_cust}.{$session_key}.zip";
$zip_target "{$dest}/*.*";
shell_exec("zip -9 {$zip_file} {$zip_target} ");

$filepath "{$zip_file}";
$original iconv("utf-8","euckr",$zip_file);

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("$filepath"));
    
header("content-disposition: attachment; filename=\"$original\"");
    
header("content-transfer-encoding: binary");
} else {
    
header("content-type: file/unknown");
    
header("content-length: ".filesize("$filepath"));
    
header("content-disposition: attachment; filename=\"$original\"");
    
header("content-description: php generated data");
}
header("pragma: no-cache");
header("expires: 0");
flush();

$fp fopen($filepath'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($fpround($download_rate 1024));
    
flush();
    
usleep(1000);
}
fclose ($fp);
flush();

//unlink($zip_file);
shell_exec("rm -rf {$dest} ");
?>