반응형

PHP로 FILE 업로드 하기....... 에 앞서 만들기위해 필요한 개념에 대한 공부를 먼저 하겠습니다. ^^



저는, 생활코딩이라는 사이트에서 공부를 하고 있습니다.

index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
</head>   
<body>
<form enctype="multipart/form-data" action="1.php" method="POST">

   <input type="hidden" name="MAX_FILE_SIZE" value="30000" />

   <input name="userfile" type="file" />
   <input type="submit" value="upload" />
</form>
</body>
</html>
cs


결과창은 다음과 같습니다.




음...............

파일을 업로드 할때 <form>태그에서 ENCTYPE="multipart/form-data"라는 애트리뷰트를 반드시 써야 합니다.

왜냐면, 그렇게 안하면, 웹서버로 데이터를 넘길때 파일의 경로만 전송되고 파일의 내용이 전송이 되지 않는다고 합니다.

또, mehod를 post로 주는것또한, 중요합니다.

 



<form>태그의 속성인 method, action, enctype 등은 입력받은 데이터를 어떻게 처리할 것인지 세부적으로 설정하는 데 사용됩니다.

  method는 전송 방식

  action은 전송 목적지

  enctype은 전송되는 데이터 형식

 



enctype

enctype 속성은 다음과 같습니다.

1. application/www-form-urlencoded

디폴트값으로, enctype을 따로 설정하지 않으면 이 값이 설정됩니다. 폼데이터는 서버로 전송되기 전에 URL-Encode 됩니다.

2. multipart/form-data

파일이나 이미지를 서버로 전송할 경우 이 방식을 사용합니다.

3. text/plain

인코딩을 하지 않은 문자 상태로 전송합니다.






다음 이부분을 봅시다.<input type="hidden" name="MAX_FILE_SIZE" value="30000" />


type="hidden"

- 숨겨진 입력필드를 정의

  즉, 화면상에 폼에는 보이지 않지만, 폼을 서버로 전송할 때 함께 전송되는 요소

- 예를 들어, 회원가입 폼에서 가입 경로, 날짜와 같이 굳이 사용자가 입력하지 않아도 알 수 있는 정보들을 서버로 넒길때 사용


<input type="hidden' name="..." value="서버 전송 값"/> 으로 사용됩니다. 


이코드의 경우, 사용자가 전송한 파일의 최대 크기를 정하기 위해 사용한다고 합니다.

php.ini의 file_uploads, upload_max_filesize, upload_tmp_dir, post_max_size 지시어를 참고하십시오. 




또한 중요하게 알아야 할 것은,

<input type="hidden" name="MAX_FILE_SIZE" value="30000" /> 이

   <input name="userfile" type="file" /> 보다 앞에 써있어야 한다는 것 입니다.



반응형

+ Recent posts