본문 바로가기
php개발자(백엔드) /php

$_FILES [엑셀업로드 관련]

by 장김치 2016. 12. 1.

[$_FILES [엑셀업로드 관련]]



엑셀을 디비에 원하는 데이터 형식으로 맞추어 업로드하기 위해서 다음과 같은 커다란 플로우가 있다. 


1. php엑셀 리더기를 통해 엑셀내용을 읽는다.

2. 파일내용중 원하는 열을 가져와 가공한다.

3. INSERT나 UPDATE등 필요한 쿼리를 작성해 DB에 인서트 시킨다.




이 3가지 플로우를 가기위해서 먼저 PHP에서 엑셀을 읽어들이는 과정을 이해해야 한다.

<input type='file'>을 이용해 업로드를 하게 되면 

$_FILE타입으로 데이터를 전달받게 되는데 이때 파일은 클라이언트(브라우저)상 설정한 가상폴더에 업로드가 된다. 그럼 다음과 같이 키=밸류 형태로 저장된다. 



  • name : 업로드 할 파일명

  • type : 파일 형식 (현재 정리하고자 하는 챕터에서는 excel이 되겠다)

  • tmp_name : 파일을 서버에 업로드 하기 전에 여기에 설정된 임시경로에 저장이 된다. 

    phpA722.tmp같은 임시 파일명으로 생성되는데 실제로 서버에 업로드 할때는 이름을 내가 원하는 파일명으로 변경해주어야 한다. (실제 업로드가 되지않은 파일은 일정시간이 지나면 없어진다)

  • error : 파일업로드 성공여부에 따른 에러 사항. 정상적으로 업로드 된 경우 에러코드는 0이다.

  • size : 파일 사이즈로 byte단위로 표기된다.




그럼 파일이 정상업로드 되었을때 각각 key값은 value값을 가지게 될것이다.

하지만 이때, 에러체크를 해야한다. 


업로드시 $_REQUEST로 표기해서 보면 $_FILES를 출력했을때 보이지 않던 항목들이 보인다.

만약 여기서 유효성체크를 안하고 넘어가면 파일이 등록되지 않아도 실행한다. 

시스템에 지정되어있는 key와 value값은 업로드가 되지  않아도 형태가남아있기 때문에 데이터가 있는걸로 간주가 되기 때문이다. 


이때는 직접적으로 항목의 여부를 체크해주어야 한다.



if($_FILES[test_file][name]) 



유효성 검사가 끝나면 파일을 "열고",  "읽어야"한다. 


열고 ---> php fopen 함수 사용

읽어야 ----> php fread 함수 사용


 http://php.net/manual/kr/function.fread.php

http://php.net/manual/kr/function.fopen.php

'php개발자(백엔드) > php' 카테고리의 다른 글

php resize png black background  (0) 2019.04.04
var_dump  (0) 2017.01.12
이니시스 에스크로  (0) 2016.11.14
접속 기기별 URL 리다이렉트 시키기  (0) 2016.10.24
체크박스 선택검색(숫자타입, 문자타입)  (0) 2016.09.19