/home/mjc1/public_html/j3demo/webhard/file_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
<?php
$no_login 
"Y";
$dir ".";
include_once(
$dir."/_common.php");

$sql "select * from webhard where idx = '{$idx}' ";
$file_info sql_fetch($sql,$connect_j3);

$filepath $file_info['b_realpos'];
$original iconv("utf-8","euckr",$file_info['b_oriname']);


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