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>";//업로드 후 원하는 페이지로 이동.
?>

관련자료

등록된 댓글이 없습니다.
Today's proverb
행복해지고 싶다면, 잠시 동안만이라도 가슴에 손을 얹고 생각해 보라. 그러면 진정한 즐거움은, 발치에 돋아나는 잡초나 아침 햇살에 빛나는 꽃의 이술과 같이 우리 주변에 무수히 널려 있다는 것을 알 수 있을 것이다. 《하루 5분 생각이 인생을 결정한다 》 (이범준)