PHP & Others

php파일 업로드 소스

컨텐츠 정보

본문

[폼파일]
<?php
$dir = $_REQUEST[dir];
print<<<EOS
<form enctype="multipart/form-data" action="uploadok.php" method="post">
<input type="hidden" name="dir" value="$dir" />
 이 파일을 전송합니다: <p>
file1 <input name="userfile1" type="file" /><br>
file2 <input name="userfile2" type="file" /><br>
file3 <input name="userfile3" type="file" /><br>
file4 <input name="userfile4" type="file" /><br>
file5 <input name="userfile5" type="file" /><br>
file6 <input name="userfile6" type="file" /><br>
file7 <input name="userfile7" type="file" /><br>
file8 <input name="userfile8" type="file" /><br>
file9 <input name="userfile9" type="file" /><br>
file10 <input name="userfile10" type="file" /><p>
 <input type="submit" value="파일 전송" />
</form>
EOS;
?>

파일선택 폼 작성시 type은 file로 해야 합니다.

[로직파일]
<?php
$dir = $_REQUEST[dir];
$uploadfile1  = $conf['datapath'].$dir ."/". $_FILES[userfile1][name];
$uploadfile2  = $conf['datapath'].$dir ."/". $_FILES[userfile2][name];
$uploadfile3  = $conf['datapath'].$dir ."/". $_FILES[userfile3][name];
$uploadfile4  = $conf['datapath'].$dir ."/". $_FILES[userfile4][name];
$uploadfile5  = $conf['datapath'].$dir ."/". $_FILES[userfile5][name];
$uploadfile6  = $conf['datapath'].$dir ."/". $_FILES[userfile6][name];
$uploadfile7  = $conf['datapath'].$dir ."/". $_FILES[userfile7][name];
$uploadfile8  = $conf['datapath'].$dir ."/". $_FILES[userfile8][name];
$uploadfile9  = $conf['datapath'].$dir ."/". $_FILES[userfile9][name];
$uploadfile10 = $conf['datapath'].$dir ."/". $_FILES[userfile10][name];

for($i=1;$i<=10;$i++) { //다중 파일 처리를 위해 for 루프 작성
   $ext = substr(${"uploadfile".$i}, strrpos(${"uploadfile".$i}, '.') + 1); //확장자 추출
   if ($ext == "php" || $ext == "php3" || $ext == "php4" || $ext == "php5" || $ext == "kr") {
      print "<script>alert('업로드 불가 파일입니다.'); history.back();</script>";
      exit; //php 파일 업로드 제한
   } else {
      if ($_FILES["userfile".$i][tmp_name]) {
         move_uploaded_file($_FILES["userfile".$i][tmp_name], ${"uploadfile".$i});//업로드 임시파일을 원하는 위치로 이동. 이것이 곧 업로드의 핵심.
      }
   }
}
print "<script>location.href='list.php?dir=$dir';</script>";//업로드 후 원하는 페이지로 이동.
?>

관련자료

댓글 0
등록된 댓글이 없습니다.
Today's proverb
“무릇 물이란 지세를 따라 흐르되 작은 틈도 놓치지 않고 적시니 지혜를 갖춘 자와 같고, 움직이면서 아래로 흘러가니 예를 갖춘 자와 같으며, 어떤 깊은 곳도 머뭇거리지 않고 들어가니 용기를 가진 자와 같고 장애물이 막혀서 갇히면 고요히 맑아지니 천명을 아는 자와 같으며, 험한 곳을 거쳐 멀리 흐르지만 끝내 남을 허물어뜨리는 법이 없으니 덕을 가진 자와 같다. 천지는 이것으로 이루어지고, 만물은 이것으로 살아가며, 나라는 이것으로 안녕을 얻고, 만사는 이것으로 평안해지며, 만물은 이것으로 바르게 되는 것이다. 이것이 지혜로운 자가 물을 좋아하는 이유이다.” (한영, <<한시외전>>)