복수의 파일은 input에서 다른 name을 사용하거나 배열로 조직화한 정보를 얻을 수 있는데, 다중 파일 업로드 폼은 다음의 조건으로 구성할 수 있습니다.
<form action="file-upload.php" enctype="multipart/form-data" method="post">
<input name="userfile[]" type="file" />
<input name="userfile[]" type="file" />
<input name="userfile[]" type="file" />
<input name="userfile[]" type="file" />
<input name="userfile[]" type="file" />
<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])."'
)");
}
}
}
}
}
}
}
?>