반응형
* 파일 업로드 폼
<script type="text/javascript">
function check_form()
{
// 업로드할 수 있는 확장자
var ext_array = new Array("txt", "hwp", "doc", "docs", "xls", "xlsx", "ppt", "pptx", "jpg", "png", "gif");
var user_file = document.getElementByid("user_file").value;
if(user_file == "")
{
alert("파일을 선택하세요.");
return false;
}
var ext = user_file.substring(user_file.lastIndexOf("."), user_file.length).toLowerCase();
var ext_check = false;
for(var i = 0; i < ext_array.length; i++)
{
if(ext == ext_array[i])
{
ext_check = true;
break;
}
}
if(ext_check == false)
{
alert("업로드 할 수 없는 파일입니다.");
return false;
}
return true;
}
</script>
<form name="upload_form" method="post" action="upload.php" enctype="multipart/form-data" onsubmit="return check_form()">
<input type="file" name="user_file">
<input type="submit" value="파일 업로드">
</form>
* 파일 업로드 처리
<?
if(isset($_FILES["user_file"] && $_FILES["user_file"]["name"] != "")
{
$upload_dir = "/www/data/";
// 5메가 제한
$max_file_size = 5242880;
$ext_array = array("txt", "hwp", "doc", "docs", "xls", "xlsx", "ppt", "pptx", "jpg", "png", "gif");
$ext = substr($_FILES["name"], strrpos($_FILES["name"], ".") + 1);
// 확장자 체크
if(!in_array($ext, $ext_array))
{
echo "업로드 할 수 없는 파일입니다.";
exit;
}
// 파일 크기 체크
if($_FILES["size"] >= $max_file_size)
{
echo "5MB 까지 업로드 가능합니다.";
exit;
}
// 파일명 변경
$save_file_name = md5(microtime()) . "." . $ext;
if(move_uploaded_file($file["tmp_name"], $upload_dir . $save_file_name))
{
// 보안을 위해 읽기만 가능하게..
chmod($upload_dir . $save_file_name, 0404);
echo "등록 되었습니다.";
}
else
{
echo "등록 도중 오류가 발생하였습니다.";
}
}
}
else
{
echo "파일을 선택하시기 바랍니다.";
}
?>
반응형