복수의 파일은 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]).
"'
                                       )"
);
                                  }
                        }
                   }
              }
          }
     }
 }
 
?>


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요