#!/usr/local/bin/perl # °³¹ßÀÚ: Steve Yeong-Ching Hsueh (steveh@pbsi.com ; ychsueh@cts.com ) # ¼öÁ¤ º¸¿Ï: ±èÈ«³² (powerbbs@kntl.co.kr) # ÀÌ ÇÁ·Î±×·¥Àº ³Ý½ºÄÉÀÌÇÁ 2.0¿¡¼­ FORMÀ» ÅëÇØ ÆÄÀÏÀ» ¾÷·ÎµåÇÒ¶§ ±× ÆÄÀÏÀ» # µðÄÚµùÇØ ÁÖ´Â ÇÁ·Î±×·¥ÀÌ´Ù. Á¤È®È÷ ¸»Çϸé, ¾÷·ÎµåµÈ µ¥ÀÌÅ͸¦ ½ÇÁ¦ ÆÄÀÏ·Î # º¯È¯ÇØ ÁÖ´Â ÇÁ·Î±×·¥À̶ó°í ÇÏ°Ú´Ù. ÀÌ ÇÁ·Î±×·¥Àº RFC 1867¿¡ ¸í½ÃµÈ # ÆÄÀϾ÷·Îµå¿¡ °ü·ÃµÈ ³»¿ëÀ» ±âÁØÀ¸·Î °³¹ßµÇ¾ú´Ù. # ¸ðµç ÆÄÀϾ÷·Îµå¿Í ´Ù¿î·Îµå´Â ÇöÀç CGI ÇÁ·Î±×·¥ÀÇ µð·ºÅ丮¸¦ ±âÁØÀ¸·Î °¡´ÉÇÏ´Ù. # ÀÌ CGI ÇÁ·Î±×·¥ÀÇ ¸ÞÀÎ ÇÔ¼öÀÌ´Ù. # ÀԷ°ú Ãâ·ÂÀº ¸ðµÎ ¾ø´Ù. # 󸮰¡ ¿Ï·áµÇ¸é 1, ±×·¸Áö ¾ÊÀ¸¸é 0À» ¸®ÅÏÇÑ´Ù. # ÆÄÀÏ¿¡ ÀÖ´Â µ¥ÀÌÅ͸¦ ÀÐ¾î ¹öÆÛ¿¡ ÀúÀåÇÑ´Ù. # ÀÔ·ÂÀº ÆÄÀϸíÀÌ°í, Ãâ·ÂÀº ÆÄÀÏ ³»¿ëÀÌ´Ù. # 󸮰¡ ¿Ï·áµÇ¸é $content¸¦, ±×·¸Áö ¾ÊÀ¸¸é 0À» ¸®ÅÏÇÑ´Ù. require 'cgilib.pl'; # ÀÌ ÇÁ·Î±×·¥¿¡¼­ ÇÊ¿äÇÑ ÀÎÀÚ¸¦ ÃʱâÈ­ÇØ ÁØ´Ù. # 󸮰¡ ¿Ï·áµÇ¸é 1, ±×·¸Áö ¾ÊÀ¸¸é 0À» ¸®ÅÏÇÑ´Ù. sub init { # URL¿¡¼­ ÇØ´ç CGI ÇÁ·Î±×·¥ÀÇ ½ÇÁ¦ °æ·Î¸¦ ÀúÀåÇÑ´Ù. $thisurl = $ENV{'SERVER_URL'}.$ENV{'SCRIPT_NAME'}; # ¾÷·ÎµåµÈ ÆÄÀÏÀÌ Á¸ÀçÇÒ µð·ºÅ丮 $upload_dir = './upload/'; # mailto¿¡ ´ëÇÑ E-Mail ÁÖ¼Ò $authorurl = 'powerbbs@kntl.co.kr'; 1; } sub read_file { local($fname) = @_; local($content); open(FILE, "<$fname") || return ''; while() { $content .= $_; } close(FILE); $content; } # µð·ºÅ丮¿¡ ÀÖ´Â ÆÄÀÏÀ̳ª µð·ºÅ丮 Á¤º¸µéÀ» Àд´Ù. # ÀÔ·ÂÀº $target_dirÀÌ°í, Ãâ·ÂÀº $dir_contentÀÌ´Ù. # 󸮰¡ ¿Ï·áµÇ¸é $dir_content¸¦, ±×·¸Áö ¾ÊÀ¸¸é 0À» ¸®ÅÏÇÑ´Ù. # ./¿Í ../¿Í ¼û°ÜÁø ÆÄÀϵéÀº Ç¥½ÃµÇÁö ¾Ê´Â´Ù. ¸ðµç ÆÄÀϵéÀº \nÀ¸·Î ºÐ¸®µÈ´Ù. sub read_dir { local($target_dir) = @_ ; local($filename, $dir_content); return 0 if(!$target_dir); opendir(DIR, $target_dir) || return 0; # ./¸¦ Á¦°ÅÇÑ´Ù. $target_dir =~ s/^\.\///; # »óÀ§ µð·ºÅ丮¸¦ ã´Â´Ù. $target_dir =~ /(.+)\/(.+)\/$/; # »óÀ§ ·¹º§À» ±Û·Î¹ú·Î¼­ ÀúÀåÇÑ´Ù. $GLOBAL{'UP_LEVEL'} = $1; if($target_dir) { $dir_content = "..back\n\n\n"; } while($filename = readdir(DIR)) { # hidden ÆÄÀÏÀº Á¦¿ÜÇÑ´Ù. if($filename =~ /^\.|^\#|~$/) { next; } $dir_content .= "$target_dir$filename\n"; } closedir(DIR); $dir_content; } # HTML ¹®¼­·Î Ãâ·ÂµÇ±â À§ÇÑ Ãâ·Â Çü½Ä ÁöÁ¤ # ÀÔ·ÂÀº $dir_content Ãâ·ÂÀº Çü½ÄÈ­µÈ dir ³»¿ë # 󸮰¡ ¿Ï·áµÇ¸é $formated_content¸¦, ±×·¸Áö ¾ÊÀ¸¸é 0À» ¸®ÅÏÇÑ´Ù. sub format_html_output { local($content) = @_; local(@filelist, $formated_content, $up_level); return 0 if(!$content); @filelist = split(/\n/, $content); $formated_content = "