메뉴 건너뛰기

조회 수 9028 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
<html>
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	<title>이미지 업로드 공부</title>
</head>
<body>
<?php

// 1.업로드 상태여부를 체크
if (isset($_POST['upload_check'])) {

	// 2.업로드된 파일의 존재여부 및 전송상태 확인
	if (isset($_FILES['upload']) && !$_FILES['upload']['error']) {

		// 3-1.허용할 이미지 종류를 배열로 저장
		$imageKind = array ('image/pjpeg', 'image/jpeg', 'image/JPG', 'image/X-PNG', 'image/PNG', 'image/png', 'image/x-png');

		// 3-2.imageKind 배열내에 $_FILES['upload']['type']에 해당되는 타입(문자열) 있는지 체크
		if (in_array($_FILES['upload']['type'], $imageKind)) {
		
			// 4.허용하는 이미지파일이라면 지정된 위치로 이동
			if (move_uploaded_file ($_FILES['upload']['tmp_name'], "./upload/{$_FILES['upload']['name']}")) {

				// 5.업로드된 이미지 파일을 출력
				echo '<p><img src="./upload/'.$_FILES['upload']['name'].'" /></p>';
				echo '<p>파일명: '.$_FILES['upload']['name'].'</p>';

			} //if , move_uploaded_file
			
		} else { // 3-3.허용된 이미지 타입이 아닌경우
			echo '<p>JPEG 또는 PNG 이미지만 업로드 가능합니다.</p>';
		}//if , inarray

	} //if , isset
	

	// 6.에러가 존재하는지 체크
	if ($_FILES['upload']['error'] > 0) {
		echo '<p>파일 업로드 실패 이유: <strong>';
	
		// 실패 내용을 출력
		switch ($_FILES['upload']['error']) {
			case 1:
				echo 'php.ini 파일의 upload_max_filesize 설정값을 초과함(업로드 최대용량 초과)';
				break;
			case 2:
				echo 'Form에서 설정된 MAX_FILE_SIZE 설정값을 초과함(업로드 최대용량 초과)';
				break;
			case 3:
				echo '파일 일부만 업로드 됨';
				break;
			case 4:
				echo '업로드된 파일이 없음';
				break;
			case 6:
				echo '사용가능한 임시폴더가 없음';
				break;
			case 7:
				echo '디스크에 저장할수 없음';
				break;
			case 8:
				echo '파일 업로드가 중지됨';
				break;
			default:
				echo '시스템 오류가 발생';
				break;
		} // switch
		
		echo '</strong></p>';
		
	} // if
	
	// 7.임시파일이 존재하는 경우 삭제
	if (file_exists ($_FILES['upload']['tmp_name']) && is_file($_FILES['upload']['tmp_name']) ) {
		unlink ($_FILES['upload']['tmp_name']);
	}
			
} // if
?>
	
<form enctype="multipart/form-data" action="test.php" method="post">
	 <!-- 8.클라이언트쪽 업로드 제한용량을 설정함-->
	<input type="hidden" name="MAX_FILE_SIZE" value="524288">
	
	<fieldset><legend>업로드할 사진파일(JPG,PNG)을 선택하세요(512K이내):</legend>
	
	<p><b>파일:</b> <input type="file" name="upload" /></p>
	
	</fieldset>
	<div align="center"><input type="submit" name="upload_form" value="업로드" /></div>
	<input type="hidden" name="upload_check" value="true" />
</form>
</body>
</html>

  1. No Image 22Dec
    by
    2016/12/22 Views 8361 

    흐르는 배너 만들기2

  2. No Image 21Sep
    by
    2016/09/21 Views 7141 

    화면 이동시에 레이어가 따라다니게 하기

  3. No Image 31Mar
    by
    2021/03/31 Views 210 

    행에 징검다리 스타일 입히기 (:odd, :even)

  4. No Image 26Mar
    by
    2021/03/26 Views 283 

    항상 최신버전으로 사용하기

  5. No Image 22Dec
    by
    2016/12/22 Views 6908 

    항상 레이어가 정 가운데 위치하는 스크립트

  6. No Image 22Dec
    by
    2016/12/22 Views 7732 

    하단 고정 레이어 스타일(CSS) 따라하기

  7. No Image 06Sep
    by
    2018/09/06 Views 2620 

    페이지 이동 제어 - href, replace, pushState()

  8. No Image 06Mar
    by 조쉬
    2017/03/06 Views 9028 

    파일 업로드 방법, 이미지 파일 업로드 예제 소스

  9. No Image 28Sep
    by
    2018/09/28 Views 3610 

    특정영역 제외하고 body 클릭

  10. No Image 04Jun
    by
    2019/06/04 Views 867 

    텍스트 필드에 기본글이 마우스 클릭하면 지워지게 하기 폼필드 소스 내에 아래 태그를 삽입한다.

  11. No Image 07Nov
    by
    2018/11/07 Views 1278 

    터치 디바이스 분기처리

  12. No Image 21Sep
    by
    2016/09/21 Views 7530 

    키보드 이벤트가 발생한 객체의 id값 알아내기

  13. No Image 25Mar
    by
    2021/03/25 Views 322 

    최초 접속시 css와 script가 로딩되지 않을때

  14. No Image 04Jun
    by
    2019/06/04 Views 780 

    체크박스 전체선택/해지

  15. No Image 21Sep
    by
    2016/09/21 Views 6667 

    체크박스 또는 라디오 버튼의 체크여부 변경하기

  16. No Image 07Nov
    by
    2018/11/07 Views 2017 

    중복 없는 랜덤

  17. No Image 31Mar
    by
    2021/03/31 Views 233 

    제이쿼리에서 클래스(class) 이름 추가/삭제

  18. No Image 26Mar
    by
    2021/03/26 Views 842 

    정규식, 한글 못쓰게 하기, replace all

  19. 입력폼에 입력되는 값의 유효성 체크하기 두번째

  20. No Image 25Nov
    by
    2020/11/25 Views 1450 

    이미지 회전, rotate();

Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved