NFUpload1.1\php\form.php NFUpload1.2\php\form.php
<? <?
/** /**
* NFUpload - 플래시 기반의 업로드 프로그래스바가 지원되는 멀티업로드 프로그램 * NFUpload - 플래시 기반의 업로드 프로그래스바가 지원되는 멀티업로드 프로그램
* *
* 라이센스 : 프리웨어 (개인/회사 구분없이 무료로 사용가능) * 라이센스 : 프리웨어 (개인/회사 구분없이 무료로 사용가능)
* 제작사 : 패스코리아넷 (http://passkorea.net/) * 제작사 : 패스코리아넷 (http://passkorea.net/)
* *
* 배포시 주의사항 : 제작사와 라이센스 정보를 삭제하시면 안됩니다. * 배포시 주의사항 : 제작사와 라이센스 정보를 삭제하시면 안됩니다.
*/  */ 
   
require_once('nfupload_conf.inc.php');      // NFUpload Config require_once('nfupload_conf.inc.php');      // NFUpload Config
?>  ?> 
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=<?= $__NFUpload['charset'] ?>" /> <meta http-equiv="Content-Type" content="text/html; charset=<?= $__NFUpload['charset'] ?>" />
<title>NFUpload - PHP 예제 | 패스코리아넷 (http://passkorea.net)</title> <title>NFUpload - PHP 예제 | 패스코리아넷 (http://passkorea.net)</title>
<script language="JavaScript" type="text/javascript" src="../NFUpload/nfupload.js?d=20071218"></script>  <script language="JavaScript" type="text/javascript" src="../NFUpload/nfupload.js?d=20081028"></script> 
<script language="JavaScript" type="text/javascript"> <script language="JavaScript" type="text/javascript">
<!-- <!--
   // -----------------------------------------------------------------------------    // -----------------------------------------------------------------------------
   // NFUpload User's Config    // NFUpload User's Config
   // -----------------------------------------------------------------------------    // -----------------------------------------------------------------------------
       // 업로드 설정        // 업로드 설정
           var _NF_UploadUrl = "http://<?= $_SERVER['HTTP_HOST'] ?><?= dirname($_SERVER['PHP_SELF']) ?>/nfupload_proc.php";                       // 업로드 소스파일 경로 (반드시 전체주소를 입력해야함)            var _NF_UploadUrl = "http://<?= $_SERVER['HTTP_HOST'] ?><?= dirname($_SERVER['PHP_SELF']) ?>/nfupload_proc.php?<?= $_SERVER['QUERY_STRING'] ?>";                       // 업로드 소스파일 경로 (반드시 전체주소를 입력해야함)
           var _NF_FileFilter = "";                                // 파일 필터링 값 ("이미지(*.jpg)|:|*.jpg;*.gif;*.png;*.bmp"); // 기본값 모든파일            var _NF_FileFilter = "";                                // 파일 필터링 값 ("이미지(*.jpg)|:|*.jpg;*.gif;*.png;*.bmp"); // 기본값 모든파일
           //var _NF_FileFilter = "이미지 파일|:|*.jpg;*.jpeg;*.gif;*.png;*.bmp";                              // 파일 필터링 값 ("이미지(*.jpg)|:|*.jpg;*.gif;*.png;*.bmp"); // 기본값 모든파일            //var _NF_FileFilter = "이미지 파일|:|*.jpg;*.jpeg;*.gif;*.png;*.bmp";                              // 파일 필터링 값 ("이미지(*.jpg)|:|*.jpg;*.gif;*.png;*.bmp"); // 기본값 모든파일
           var _NF_DataFieldName = "upfile";               // 업로드 폼에 사용되는 값 (기본값(UploadData))            var _NF_DataFieldName = "upfile";               // 업로드 폼에 사용되는 값 (기본값(UploadData))
           var _NF_Flash_Url = "../NFUpload/nfupload.swf?d=20071218";            // 업로드 컴포넌트 플래쉬 파일명            var _NF_Flash_Url = "../NFUpload/nfupload.swf?d=20081028";            // 업로드 컴포넌트 플래쉬 파일명
   
       // 화면 구성        // 화면 구성
           var _NF_Width = 600;                                    // 업로드 컴포넌트 넓이 (기본값 480)            var _NF_Width = 600;                                    // 업로드 컴포넌트 넓이 (기본값 480)
           var _NF_Height = 170;                                   // 업로드 컴포넌트 폭 (기본값 150)            var _NF_Height = 200;                                   // 업로드 컴포넌트 폭 (기본값 150)
           var _NF_ColumnHeader1 = "파일명";                      // 컴포넌트에 출력되는 파일명 제목 (기본값: File Name)            var _NF_ColumnHeader1 = "파일명";                      // 컴포넌트에 출력되는 파일명 제목 (기본값: File Name)
           var _NF_ColumnHeader2 = "용량";                      // 컴포넌트에 출력되는 용량 제목 (기본값: File Size)            var _NF_ColumnHeader2 = "용량";                      // 컴포넌트에 출력되는 용량 제목 (기본값: File Size)
           var _NF_FontFamily = "굴림";                            // 컴포넌트에서 사용되는 폰트 (기본값: Times New Roman)            var _NF_FontFamily = "굴림";                            // 컴포넌트에서 사용되는 폰트 (기본값: Times New Roman)
           var _NF_FontSize = "11";                                // 컴포넌트에서 사용되는 폰트 크기 (기본값: 11)            var _NF_FontSize = "11";                                // 컴포넌트에서 사용되는 폰트 크기 (기본값: 11)
   
       // 업로드 제한        // 업로드 제한
           var _NF_MaxFileSize = <?= $__NFUpload['max_size_total'] ?>;                         // 업로드 제한 용량 (기본값: 10,240 Kb) (단위는 Kb)            var _NF_MaxFileSize = <?= $__NFUpload['max_size_total'] ?>;                         // 업로드 제한 용량 (기본값: 10,240 Kb) (단위는 Kb)
           var _NF_MaxFileCount = <?= $__NFUpload['max_count'] ?>;                           // 업로드 파일 제한 갯수 (기본값: 10)            var _NF_MaxFileCount = <?= $__NFUpload['max_count'] ?>;                           // 업로드 파일 제한 갯수 (기본값: 10)
           var _NF_File_Overwrite = <? if ($__NFUpload['file_overwrite']) echo 'true'; else echo 'false'; ?>;                       // 업로드시 파일명 처리방법(true : 원본파일명 유지, 덮어씌우기 모드 / false : 유니크파일명으로 변환, 중복방지)            var _NF_File_Overwrite = <? if ($__NFUpload['file_overwrite']) echo 'true'; else echo 'false'; ?>;                       // 업로드시 파일명 처리방법(true : 원본파일명 유지, 덮어씌우기 모드 / false : 유니크파일명으로 변환, 중복방지)
           var _NF_Limit_Ext = "<?= $__NFUpload['limit_ext'] ?>";   // 파일 제한 확장자            var _NF_Limit_Ext = "<?= $__NFUpload['limit_ext'] ?>";   // 파일 제한 확장자
   
         // [2008-10-28] Flash 10 support 
         var _NF_Img_FileBrowse = "images/btn_file_browse.gif";  // 파일찾기 이미지 
         var _NF_Img_FileBrowse_Width = "59";                    // 파일찾기 이미지 넓이 (기본값 59) 
         var _NF_Img_FileBrowse_Height = "22";                   // 파일찾기 이미지 폭 (기본값 22) 
         var _NF_Img_FileDelete = "images/btn_file_delete.gif";  // 파일삭제 이미지 
         var _NF_Img_FileDelete_Width = "59";                    // 파일삭제 이미지 넓이 (기본값 59) 
         var _NF_Img_FileDelete_Height = "22";                   // 파일삭제 이미지 폭 (기본값 22) 
         var _NF_TotalSize_Text = "첨부용량 ";                   // 파일용량 텍스트 
         var _NF_TotalSize_FontFamily = "굴림";                  // 파일용량 텍스트 폰트 
         var _NF_TotalSize_FontSize = "12";                      // 파일용량 텍스트 폰트 크기 
   
   // -----------------------------------------------------------------------------    // -----------------------------------------------------------------------------
   // NFUpload Function    // NFUpload Function
   // -----------------------------------------------------------------------------    // -----------------------------------------------------------------------------
       // 폼입력 완료        // 폼입력 완료
       function NFU_Complete(value) {        function NFU_Complete(value) {
           var files = document.FrmUpload.hidFileName.value;            var files = document.FrmUpload.hidFileName.value;
           var fileCount = 0;            var fileCount = 0;
           var i = 0;            var i = 0;
   
           // 이 부분을 수정해서 파일이 선택되지 않았을 때에도 submit을 하게 수정할 수 있습니다.            // 이 부분을 수정해서 파일이 선택되지 않았을 때에도 submit을 하게 수정할 수 있습니다.
           if (value == null)            if (value == null)
           {            {
               alert("업로드할 파일을 선택해 주세요.");                alert("업로드할 파일을 선택해 주세요.");
               return;                return;
           }            }
   
           fileCount = value.length;            fileCount = value.length;
   
           for (i = 0; i < fileCount; i++)            for (i = 0; i < fileCount; i++)
           {            {
               var fileName = value[i].name;                var fileName = value[i].name;
               var realName = value[i].realName;                var realName = value[i].realName;
               var fileSize = value[i].size;                var fileSize = value[i].size;
   
               // 분리자(|:|)는 다른 문자로 변경할 수 있다.                // 분리자(|:|)는 다른 문자로 변경할 수 있다.
               files += fileName + "/" + realName + "|:|";                files += fileName + "/" + realName + "|:|";
           }            }
   
           if (files.substring(files.length - 3, files.length) == "|:|")            if (files.substring(files.length - 3, files.length) == "|:|")
               files = files.substring(0, files.length - 3);                files = files.substring(0, files.length - 3);
   
           document.FrmUpload.hidFileName.value = files;            document.FrmUpload.hidFileName.value = files;
           document.FrmUpload.submit();            document.FrmUpload.submit();
       }        }
   
       // 폼입력 취소        // 폼입력 취소
       function NF_Cancel()        function NF_Cancel()
       {        {
           // 초기화 할때는 첨부파일 리스트도 같이 초기화 시켜 준다.            // 초기화 할때는 첨부파일 리스트도 같이 초기화 시켜 준다.
           NfUpload.AllFileDelete();            NfUpload.AllFileDelete();
           FrmUpload.reset();            FrmUpload.reset();
       }        }
   
       // 선택된 파일들의 총용량을 화면에 갱신시킴.        // 선택된 파일들의 총용량을 화면에 갱신시킴.
       function NF_ShowUploadSize(value) {        function NF_ShowUploadSize(value) {
           // value값에 실제 업로드된 용량이 넘어온다.            // value값에 실제 업로드된 용량이 넘어온다.
           sUploadSize.innerHTML = value;            sUploadSize.innerHTML = value;
       }        }
   
       // 업로드 실패시 경고문구        // 업로드 실패시 경고문구
       function NFUpload_Debug(value)        function NFUpload_Debug(value)
       {        {
           Debug("업로드가 실패하였습니다.\r\n\r\n관리자일 경우 디버깅모드를 활성화시켜 디버깅로그를 확인해보시면 됩니다.\r\n\r\n" + value);            Debug("업로드가 실패하였습니다.\r\n\r\n관리자일 경우 디버깅모드를 활성화시켜 디버깅로그를 확인해보시면 됩니다.\r\n\r\n" + value);
       }        }
   
       window.onload=function(){        window.onload=function(){
           document.FrmUpload.hidFileName.value = "";            document.FrmUpload.hidFileName.value = "";
           sMaxSize.innerHTML = SizeCalc(_NF_MaxFileSize);             // [2008-10-28] Flash 10 support 
             //sMaxSize.innerHTML = SizeCalc(_NF_MaxFileSize); 
       }        }
// -->  // --> 
</script> </script>
</head> </head>
<body> <body>
   
<h2>1. 업로드 페이지</h2> <h2>1. 업로드 페이지</h2>
   
   
<!-- [Begin] 글쓰기폼 예제 -->  <!-- [Begin] 글쓰기폼 예제 --> 
<form name="FrmUpload" method="post" action="form_ok.php" style="margin:0px"> <form name="FrmUpload" method="post" action="form_ok.php" style="margin:0px">
   <input type="hidden" name="hidFileName"/><!-- 업로드된 파일명 전달 -->     <input type="hidden" name="hidFileName"/><!-- 업로드된 파일명 전달 --> 
   
   <div style="background-color:#CDCDCD; width:600px">    <div style="background-color:#CDCDCD; width:600px">
   <table border="0" cellpadding="5" cellspacing="1" width="600">    <table border="0" cellpadding="5" cellspacing="1" width="600">
       <tr bgcolor="white">        <tr bgcolor="white">
           <td align="center" width="100">제목</td>            <td align="center" width="100">제목</td>
           <td align="left"><input type="text" name="txtSubject" size="50"  style="width:100%"/></td>            <td align="left"><input type="text" name="txtSubject" size="50"  style="width:100%"/></td>
       </tr>        </tr>
       <tr bgcolor="white">        <tr bgcolor="white">
           <td align="center" width="100">내용</td>            <td align="center" width="100">내용</td>
           <td align="center"><textarea name="txtContent" rows="10" cols="65" style="width:100%"></textarea></td>            <td align="center"><textarea name="txtContent" rows="10" cols="65" style="width:100%"></textarea></td>
       </tr>        </tr>
   </table>    </table>
   </div>    </div>
</form> </form>
<!-- [End] 글쓰기폼 예제 -->  <!-- [End] 글쓰기폼 예제 --> 
   
   
<br style="line-height:10px"> <br style="line-height:10px">
   
   
<!-- [Begin] NFUpload 객체 생성 (폼태그안에 들어가면 안됨!) -->  <!-- [Begin] NFUpload 객체 생성 (폼태그안에 들어가면 안됨!) --> 
<table border="0" cellpadding="0" cellspacing="0" width="600"> <table border="0" cellpadding="0" cellspacing="0" width="600">
   <tr height="23">    <!-- // [2008-10-28] Flash 10 support <tr height="23">
       <td align="left" style="padding-left:5px;" width="450">첨부용량: <span id="sUploadSize">0 Byte</span> / <span id="sMaxSize"></span></td>        <td align="left" style="padding-left:5px;" width="450">첨부용량: <span id="sUploadSize">0 Byte</span> / <span id="sMaxSize"></span></td>
       <td align="right" style="padding-right:5px;" width="150">        <td align="right" style="padding-right:5px;" width="150">
           <a href="javascript: NfUpload.FileBrowse();"><img src="img/btn_file_browse.gif" border="0" /></a>&nbsp;            <a href="javascript: NfUpload.FileBrowse();"><img src="img/btn_file_browse.gif" border="0" /></a>&nbsp;
           <a href="javascript: NfUpload.FIleDelete();"><img src="img/btn_file_delete.gif" border="0" /></a>&nbsp;            <a href="javascript: NfUpload.FIleDelete();"><img src="img/btn_file_delete.gif" border="0" /></a>&nbsp;
       </td>        </td>
   </tr>      </tr> -->  
   <tr>    <tr>
       <td align="center" colspan="2" style="padding-top:3px;">        <td align="center" colspan="2" style="padding-top:3px;">
           <script language="javascript">            <script language="javascript">
           <!--            <!--
               // NFUpload 객체 생성                // NFUpload 객체 생성
               NfUpload = new NFUpload({ nf_upload_id : _NF_Uploader_Id, nf_width : _NF_Width, nf_height : _NF_Height, nf_field_name1 : _NF_ColumnHeader1, nf_field_name2 : _NF_ColumnHeader2, nf_max_file_size : _NF_MaxFileSize, nf_max_file_count : _NF_MaxFileCount, nf_upload_url : _NF_UploadUrl, nf_file_filter : _NF_FileFilter, nf_data_field_name : _NF_DataFieldName, nf_font_family : _NF_FontFamily, nf_font_size : _NF_FontSize, nf_flash_url : _NF_Flash_Url, nf_file_overwrite : _NF_File_Overwrite, nf_limit_ext : _NF_Limit_Ext});                //NfUpload = new NFUpload({ nf_upload_id : _NF_Uploader_Id, nf_width : _NF_Width, nf_height : _NF_Height, nf_field_name1 : _NF_ColumnHeader1, nf_field_name2 : _NF_ColumnHeader2, nf_max_file_size : _NF_MaxFileSize, nf_max_file_count : _NF_MaxFileCount, nf_upload_url : _NF_UploadUrl, nf_file_filter : _NF_FileFilter, nf_data_field_name : _NF_DataFieldName, nf_font_family : _NF_FontFamily, nf_font_size : _NF_FontSize, nf_flash_url : _NF_Flash_Url, nf_file_overwrite : _NF_File_Overwrite, nf_limit_ext : _NF_Limit_Ext});
                 // [2008-10-28] Flash 10 support 
                 NfUpload = new NFUpload({  
                         nf_upload_id : _NF_Uploader_Id,  
                         nf_width : _NF_Width,  
                         nf_height : _NF_Height,  
                         nf_field_name1 : _NF_ColumnHeader1,  
                         nf_field_name2 : _NF_ColumnHeader2,  
                         nf_max_file_size : _NF_MaxFileSize,  
                         nf_max_file_count : _NF_MaxFileCount,  
                         nf_upload_url : _NF_UploadUrl,  
                         nf_file_filter : _NF_FileFilter,  
                         nf_data_field_name : _NF_DataFieldName,  
                         nf_font_family : _NF_FontFamily,  
                         nf_font_size : _NF_FontSize,  
                         nf_flash_url : _NF_Flash_Url,  
                         nf_file_overwrite : _NF_File_Overwrite,  
                         nf_limit_ext : _NF_Limit_Ext,  
                         nf_img_file_browse : _NF_Img_FileBrowse,  
                         nf_img_file_browse_width : _NF_Img_FileBrowse_Width,  
                         nf_img_file_browse_height : _NF_Img_FileBrowse_Height,  
                         nf_img_file_delete : _NF_Img_FileDelete,  
                         nf_img_file_delete_width : _NF_Img_FileDelete_Width,  
                         nf_img_file_delete_height : _NF_Img_FileDelete_Height,  
                         nf_total_size_text : _NF_TotalSize_Text,  
                         nf_total_size_font_family : _NF_TotalSize_FontFamily,  
                         nf_total_size_font_size : _NF_TotalSize_FontSize  
                 });  
           //-->             //--> 
           </script>            </script>
       </td>        </td>
   </tr>    </tr>
   <tr>    <tr>
       <td align="center" colspan="2" style="padding-top:5px;">        <td align="center" colspan="2" style="padding-top:5px;">
           <a href="javascript: NfUpload.FileUpload();"><img src="img/btn_doc_write.gif" border="0" /></a>            <a href="javascript: NfUpload.FileUpload();"><img src="img/btn_doc_write.gif" border="0" /></a>
           <a href="javascript: NF_Cancel();"><img src="img/btn_cancel.gif" border="0" /></a>            <a href="javascript: NF_Cancel();"><img src="img/btn_cancel.gif" border="0" /></a>
       </td>        </td>
   </tr>    </tr>
</table> </table>
<!-- [End] NFUpload 객체 생성 (폼태그안에 들어가면 안됨!) -->  <!-- [End] NFUpload 객체 생성 (폼태그안에 들어가면 안됨!) --> 
   
   
   
<br style="line-height:10px"> <br style="line-height:10px">
   
<!-- [Begin] 개발시 확인해야하는 PHP 설정값 (작업완료후 삭제하면 됩니다.) -->  <!-- [Begin] 개발시 확인해야하는 PHP 설정값 (작업완료후 삭제하면 됩니다.) --> 
<? <?
function get_php_ini_path() { ob_start(); phpinfo(INFO_GENERAL); $php_info = ob_get_contents(); ob_end_clean(); function get_php_ini_path() { ob_start(); phpinfo(INFO_GENERAL); $php_info = ob_get_contents(); ob_end_clean();
foreach (split("\n",$php_info) as $line) { if (eregi('command',$line)) { continue; } foreach (split("\n",$php_info) as $line) { if (eregi('command',$line)) { continue; }
if (preg_match('/thread safety.*(enabled|yes)/Ui',$line)) { $thread_safe = true; } if (preg_match('/thread safety.*(enabled|yes)/Ui',$line)) { $thread_safe = true; }
if (preg_match('/debug.*(enabled|yes)/Ui',$line)) { $debug_build = true; } if (preg_match('/debug.*(enabled|yes)/Ui',$line)) { $debug_build = true; }
if (eregi("configuration file.*(</B></td><TD ALIGN=\"left\">| => |v\">)([^ <]*)(.*</td.*)?",$line,$match)) { $php_ini_path = $match[2]; } } if (eregi("configuration file.*(</B></td><TD ALIGN=\"left\">| => |v\">)([^ <]*)(.*</td.*)?",$line,$match)) { $php_ini_path = $match[2]; } }
return $php_ini_path; } // function() return $php_ini_path; } // function()
?>  ?> 
<strong>[첨부 용량 제한 안내]</strong><br> <strong>[첨부 용량 제한 안내]</strong><br>
               <br style="line-height: 10px">                <br style="line-height: 10px">
               <font color=red> <u>[첨부 최대용량]</u> 변경하려면 서버에서 PHP 설정(php.ini) 확인해야 합니다.</font><br>                <font color=red> <u>[첨부 최대용량]</u> 변경하려면 서버에서 PHP 설정(php.ini) 확인해야 합니다.</font><br>
               &nbsp; PHP 설정파일 경로) <u><?= get_php_ini_path() ?></u><br>                &nbsp; PHP 설정파일 경로) <u><?= get_php_ini_path() ?></u><br>
               &nbsp; PHP 설정 상태)<br>                &nbsp; PHP 설정 상태)<br>
               &nbsp; &nbsp; &nbsp; <u>post_max_size = <b><?= ini_get('post_max_size') ?></b></u> &nbsp; &nbsp; &nbsp; &nbsp; ; Maximum size of POST data that PHP will accept.<br>                &nbsp; &nbsp; &nbsp; <u>post_max_size = <b><?= ini_get('post_max_size') ?></b></u> &nbsp; &nbsp; &nbsp; &nbsp; ; Maximum size of POST data that PHP will accept.<br>
               &nbsp; &nbsp; &nbsp; <u>upload_max_filesize = <b><?= ini_get('upload_max_filesize') ?></b></u>&nbsp; &nbsp; &nbsp; &nbsp; ; Maximum allowed size for uploaded files<br>                &nbsp; &nbsp; &nbsp; <u>upload_max_filesize = <b><?= ini_get('upload_max_filesize') ?></b></u>&nbsp; &nbsp; &nbsp; &nbsp; ; Maximum allowed size for uploaded files<br>
               <br style="line-height: 10px">                <br style="line-height: 10px">
               <font class=nm_comment> 만약 <u>'첨부 최대용량' 100MB로 지정할 경우</u> 다음처럼 설정을 변경후<br>                <font class=nm_comment> 만약 <u>'첨부 최대용량' 100MB로 지정할 경우</u> 다음처럼 설정을 변경후<br>
               &nbsp; &nbsp; 아파치 웹서버를 재시작하면 됩니다.</font><br>                &nbsp; &nbsp; 아파치 웹서버를 재시작하면 됩니다.</font><br>
               <font color=red>&nbsp; &nbsp; 주의) <u>php.ini 내에서 중복된 설정이 있을 마지막에 추가된 설정</u> 적용됩니다.</font><br>                <font color=red>&nbsp; &nbsp; 주의) <u>php.ini 내에서 중복된 설정이 있을 마지막에 추가된 설정</u> 적용됩니다.</font><br>
               <font class=nm_comment>&nbsp; &nbsp; &nbsp; post_max_size = <u>110M</u> &nbsp; &nbsp; &nbsp; &nbsp; ; Maximum size of POST data that PHP will accept.<br>                <font class=nm_comment>&nbsp; &nbsp; &nbsp; post_max_size = <u>110M</u> &nbsp; &nbsp; &nbsp; &nbsp; ; Maximum size of POST data that PHP will accept.<br>
               &nbsp; &nbsp; &nbsp; upload_max_filesize = <u>100M</u>&nbsp; &nbsp; &nbsp; &nbsp; ; Maximum allowed size for uploaded files<br>                &nbsp; &nbsp; &nbsp; upload_max_filesize = <u>100M</u>&nbsp; &nbsp; &nbsp; &nbsp; ; Maximum allowed size for uploaded files<br>
               </font>                </font>
<br> <br>
<!-- [End] 개발시 확인해야하는 PHP 설정값 (작업완료후 삭제하면 됩니다.) -->  <!-- [End] 개발시 확인해야하는 PHP 설정값 (작업완료후 삭제하면 됩니다.) --> 
   
   
   
</body> </body>
</html> </html>