php 파일 업로드하기
안녕하세요 파일업로드하는 방법에 대해서 알아보겠습니다.
php파일은 총 2개가 필요합니다. 파일을 업로드할 파일 1개 그리고 업로드한 파일을 받아줄 파일1개 이렇게 총 2개가 필요합니다.
저는 첫번째 파일을 file.php라고 하고 form으로 넘겨받는 파일명을 upload.php로 작성했습니다.
먼저 파일업로드를 하려면 $_FILES 에 대해서 알아야합니다.
1. $_FILES['input의 name명']['name']
- 파일의 이름
2. $_FILES['input의 name명']['type']
- 파일의 타입, ex) .jpg, .gif 등
3. $_FILES['input의 name명']['size']
- 파일의 사이즈
4. $_FILES['input의 name명']['tmp_name']
- 파일의 임시파일명, 업로드된 파일이 일시적으로 저장된 파일 패스
5. $_FILES['input의 name명']['error']
- 파일의 에러
이렇게 5가지가 있습니다.
1.file.php
file.php를 살펴보면
사용된게 form 그리고 input 태그 단 두개입니다.
form을 자세히 살펴보면 action, method, ectype 이 사용되었는데 action은 업로드된 파일을 submit(전송)을 했을 경우 어떠한페이지로 어떠한 형식(method)으로 전송할 것인지 를 나타내 주는것이고
enctype은 파일을 업로드 할 경우 넣어주셔야합니다. 간단하죠?? method에는 post방식, get방식 두가지가 있는데 이건 나중에 설명하도록 하겠습니다.
이제 2번째 파일을 보겠습니다.
2. upload.php
<? $uploadDir = "./upload/"; $uploadFile = $uploadDir.basename($_FILES['file']['name']); if(move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile)){ echo "파일업로드에 성공하셨습니다"; }else{ echo "오류"; } print_r($_FILES); ?>
첫번째 변수인 $uploadDir 은 업로드를 할 폴더를 정합니다. 그리고 $uploadFile은 파일명입니다. 업로드한 파일명으로 업로드할 폴더에 저장을 한다고 생각하시면 됩니다.
그리고 if문에 보시면 move_uploaded_file(filename, destination)이 있습니다. 파일은 업로드 되면 임시파일로 등록이 되기 때문에 파일명에는 $_FILES['file']['tmp_name']적어주시고 목적지(destination)에는
업로드폴더+본래의파일명으로 저장한 $uploadFile의 변수를 적어주시면 됩니다.
시간이 또 되면 배열을 이용한 다중업로드에 대해서도 설명하도록 하겠습니다~! 감사합니다.