null, "folder"=>"board", "table"=>"board_file" ) ); $fileInfo = $fileUpload->getFileInfo($fileSid); // 파일 정보 없을 경우 에러 if ( $fileInfo['file_name_down'] == "" ) { errorMsg( "Not available file!!", "CLOSE" ); exit; } /* * 게시판 정보 조회 후 글 보기 권한 체크 */ include __MODULE_PATH."/board/Board.php"; $board = new Board( $fileInfo['board_sid'] ); // 사용권한 체크 Check_Page_Use( $board->_avail_level("view") ); // 본인 글 체크 $isMine = $board->getData($fileInfo['data_sid'], "VIEW",$_SESSION['TMP_BOARD_PASS'], "CHECK"); // 글 보기 불가시 에러 if ( !$isMine ) { errorMsg( "Not available file!!!", "CLOSE" ); exit; } // 실제 다운로드 path $file_url = _FILE_UPLOAD_ROOT ."/board/". $fileInfo['file_name_down']; // 상위 디렉토리 접근 금지 $file_url = str_replace( "../", "", $file_url ); // 다운로드 파일명 $file_name = $fileInfo['file_name_org']; //$file_name = strip_tags( iconv( "UTF-8", "EUC-KR", $fileInfo['file_name_org'] ) ); $file_name = strip_tags( iconv( "UTF-8", "EUC-KR", str_replace( " ", "", $fileInfo['file_name_org'] ) ) ); $LastModified = gmdate("D d M Y H:i:s", filemtime($file_url)); header("Last-Modified: $LastModified GMT"); header("ETag: \"$LastModified\""); header("Content-type: application/octet-stream; name=$file_name"); Header("Content-Disposition: attachment; filename=$file_name"); if ( !($fp = @fopen($file_url, "rb") ) ) return false; $filesendsize=4096; $filesize = filesize($file_url); for ($i = 0; $i <= $filesize; $i += $filesendsize) { if ( !$body = fread($fp, $filesendsize) ) return false; echo "$body"; } fclose($fp); exit; ?>