VIDEO
VIDEO
목차
파일 업로드 구현
파일 확장자 제한
파일 업로드 구현
1. form 태그 필수속성
<form action="업데이트실행파일(예: b.php)" method="post" enctype="multipart/form-data" >
<input type="file" name="hz ">
<input type="submit" value="확인">
</form>
2. phpinfo() 함수로 업로드 된 파일 확인하기
b.php
<?php phpinfo(); ?>
2. PHP Variables 영역에서 파일 정보 확인 가능. (※ 임시저장상태) ※ Ctrl + F (찾기창) 띄운 후, $_FILE 키워드로 검색$_FILES['hz '] 배열변수 안에 아래 정보 등록
Array
(
[name] => homzznag.txt
[type] => text/plain
[tmp_name] => C:\Users\kissh\AppData\Local\Temp\php40E6.tmp
[error] => 0
[size] => 791
)
PS1. b.php 파일에 아래 코드 넣어 바로 확인 가능.
<?php
foreach ($_FILES['hz '] as $k => $v) {
echo "파일 $k : $v <br>";
}
?>
PS2. b.php 파일에 아래 코드 넣어 바로 확인 가능.
<?php
echo "파일 name : ".$_FILES['hz ']['name'] ."<br>";
echo "파일 type : ".$_FILES['hz ']['type'] ."<br>";
echo "파일 tmp_name : ".$_FILES['hz ']['tmp_name'] ."<br>";
echo "파일 error : ".$_FILES['hz ']['error'] ."<br>";
echo "파일 size : ".$_FILES['hz ']['size'] ."<br>";
?>
3. 임시파일을 실제 저장공간으로 이동시키기
b.php 파일에 아래 코드 추가
(예) /data/file 디렉토리로 이동시키기
<?php
// 방법1 - 업로드 파일명 그대로 사용. (보안 취약 )
<?php
move_uploaded_file ($_FILES['hz']['tmp_name'],'./data/file/'.$_FILES['hz']['name']);
?>
?>
<?php
// 방법2 - 업로드 파일명 변경 (예: fileNewName.txt ) (보안 양호)
move_uploaded_file($_FILES['hz']['tmp_name'],'./data/file/fileNewName.txt ');
?>
<?php
// 방법3 - 업로드 파일명을 날짜로 표현 (예: 14자리)
$newFileName = date('YmdHis'); // 년월일시분초
move_uploaded_file($_FILES['hz']['tmp_name'],'./data/file/'.$newFileName);
?>
PS. 아래 경우엔 에러 발생하니 주의.
해당 디렉토리 존재 안 한 경우
퍼미션이 707 (또는, 777) 아닌 경우
파일 확장자 제한
※ b.php 파일 상단에 아래 코드 추가
$hzfile = pathinfo ($_FILES['hz']['name']);
// print_r($hzfile);
// 결과값: Array ( [dirname] => . [basename] => homzzang.txt [extension] => txt [filename] => homzzang )
switch($hzfile['extension'])
{
case "jpg":
case "jpeg":
case "png";
case "gif": break;
case "": // 점(.)으로 끝나는 파일 제어
case NULL: //확장자 없는 파일 제어
default: echo "(jpg/jpeg/png/gif) 이미지만 업로드 가능"; exit;
}
주소 복사
랜덤 이동
최신댓글