1) // 회원이상 다운로드가 가능하다면 { // 다운로드 포인트가 음수이고 회원의 포인트가 0 이거나 작다면 if ($member[mb_point] + $board[bo_download_point] < 0) alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 다운로드(".number_format($board[bo_download_point]).")가 불가합니다.\\n\\n포인트를 적립하신 후 다시 다운로드 해 주십시오."); // 게시물당 한번만 차감하도록 수정 insert_point($member[mb_id], $board[bo_download_point], "$board[bo_subject] $wr_id 파일 다운로드", $bo_table, $wr_id, "다운로드"); } // 다운로드 카운트 증가 $sql = " update $g4[board_file_table] set bf_download = bf_download + 1 where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$no' "; sql_query($sql); set_session($ss_name, TRUE); } $g4[title] = "$group[gr_subject] > $board[bo_subject] > " . conv_subject($write[wr_subject], 255) . " > 다운로드"; $filepath = "$g4[path]/data/file/$bo_table/$file[bf_file]"; $filepath = addslashes($filepath); if (preg_match("/^utf/i", $g4[charset])) $original = urlencode($file[bf_source]); else $original = $file[bf_source]; @include_once("$board_skin_path/download.tail.skin.php"); if (file_exists($filepath)) { if(eregi("msie", $_SERVER[HTTP_USER_AGENT]) && eregi("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(); if (is_file("$filepath")) { $fp = fopen("$filepath", "rb"); // 4.00 대체 // 서버부하를 줄이려면 print 나 echo 또는 while 문을 이용한 방법보다는 이방법이... //if (!fpassthru($fp)) { // fclose($fp); //} while(!feof($fp)) { echo fread($fp, 100*1024); flush(); } fclose ($fp); flush(); } else { alert("해당 파일이나 경로가 존재하지 않습니다."); } } else { alert("파일을 찾을 수 없습니다."); } ?>