PHP & Others

POST 다중 파일 업로드

컨텐츠 정보

본문

복수의 파일은 input에서 다른 name을 사용하거나 배열로 조직화한 정보를 얻을 수 있습니다. 다중 파일 업로드 폼은 다음의 조건으로 구성할 수 있습니다.

 <form action="file-upload.php" method="post" enctype="multipart/form-data"><br />
   <input name="userfile[]" type="file" /><br />
   <input name="userfile[]" type="file" /><br />
   <input name="userfile[]" type="file" /><br />
   <input name="userfile[]" type="file" /><br />
   <input name="userfile[]" type="file" /><br />
   <input type="submit" value="파일 전송" />
 </form> 

폼전송시 file-upload.php파일에서는 다음 표로 구성하여 정보를 받을 수 있습니다.

 <?php 
 
foreach($_FILES['userfile']['name'] as $key => $val
){ 
      if((
$_FILES['userfile']['size'][$key] > 0
){ 
           if(
$_FILES['userfile']['error'][$key] === UPLOAD_ERR_OK
){ 
                if(
is_uploaded_file($_FILES['userfile']['tmp_name'][$key
])){ 
                     
$filename md5("habony_".$_FILES['userfile']['name'][$key
]); 
                     if(
move_uploaded_file($_FILES['userfile']['tmp_name'][$key],"./upload/".$filename
)){ 
                           
mysql_query(
"insert into $db value( 
                           '', 
                           '"
.addslashes($_FILES['userfile']['name'][$key]).
"' 
                           )"
); 
                     } 
                } 
           } 
      } 
 } 
 
?> 

복수 파일 업로드를 허용하더라도 최대 파일 크기를 제한하려면 다음 예와 같을 것입니다.

 <form action="" method="post" enctype="multipart/form-data"><br /> 
   <input type="hidden" name="MAX_FILE_SIZE" value="300000" /><br /> 
   <input name="userfile[]" type="file" /><br /> 
   <input name="userfile[]" type="file" /><br /> 
   <input name="userfile[]" type="file" /><br /> 
   <input name="userfile[]" type="file" /><br /> 
   <input name="userfile[]" type="file" /><br /> 
   <input type="submit" value="파일 전송" /> 
 </form>  

 
<?php 
 
if(is_array($_FILES['userfile']['name'
])){ 
     
$filesize 0

     foreach(
$_FILES['userfile']['size'] as $key => $val
){ 
          if(
$_FILES['userfile']['size'][$key] > 0
){ 
               
$filesize += $_FILES['userfile']['size'][$key
]; 
          } 
     } 
     
// 사용자 입력필드 파일 제한 크기 
     
$maxfilesize = (int)$_POST['MAX_FILE_SIZE'
]; 
     if(
$filesize $maxfilesize
){ 
          echo 
"허용 파일용량을 초과하였습니다."

     } else { 
          foreach(
$_FILES['userfile']['name'] as $key => $val
){ 
              if(
$_FILES['userfile']['size'][$key] > 0
){ 
                   if(
$_FILES['userfile']['error'][$key] === UPLOAD_ERR_OK
){ 
                        if(
is_uploaded_file($_FILES['userfile']['tmp_name'][$key
])){ 
                             
$filename md5("habony_".$_FILES['userfile']['name'][$key
]); 
                             
$tmpfilename $_FILES['userfile']['tmp_name'][$key
]; 
                                  if(
move_uploaded_file($tmpfilename,"./upload/".$filename
)){ 
                                       
mysql_query(
"insert into $db value ( 
                                            '', 
                                            '"
.addslashes($_FILES['userfile']['name'][$key]).
"' 
                                       )"
); 
                                  } 
                        } 
                   } 
              } 
          } 
     } 
 } 
 
?>

관련자료

댓글 0
등록된 댓글이 없습니다.
Today's proverb
유쾌한 사람은 자기 일에만 몰두하는 사람이 아니다. 때론 자신의 일을 전부 제쳐놓고 타인의 문제에 전력을 쏟는 열정이 있는 사람이다. 타인에게 자신의 힘을 나누어주고 마음을 열어주는 것은 자신의 삶을 행복하게 만드는 방법이다.