코드/PHP

$_FILES 속성

Yeah-Panda 2015. 4. 7. 09:54

SuperGlobal 변수 $_FILES 속성들


$_FILES는 배열 요소로써 업로드한 파일에 관한 정보를 가지고 있다.


form_name :  파일 폼 이름

$_FILES[’form_name’][’name’]  - 업로드한 파일명
$_FILES[’form_name’][’type’] - 업로드한 파일의 MIME 타입 ( Jpg, Gif 등)
$_FILES[’form_name’][’size’] - 업로드한 파일의 사이즈( 바이트 )
$_FILES[’form_name’][’error’] - 파일업로드 작업시 발생한 에러코드
‘0′ 은 성공을 의미하고 나머지는 실패를 의미한다.
$_FILES[’form_name’][’tmp_name’] - 파일이 저장된 서버의 임시 저장소
ex) /tmp/phpe7qJky 등


파일폼을 통해 서버로 전송된 파일은 서버의 임시 폴더에 저장되며 무작위 문자열로 구성된 폴더명으로 서버에서 자동 생성된다.
업로드한 파일이 최초 저장되는 장소를 지정할 수는 없다. 하지만 업로드가 완료된 파일을 다른 폴더로 옮기는 것은 가능하다.
임시폴더는 시스템에 의해 주기적으로 비워진다. 임시폴더가 모두에게 개방되지 않아 HTML코드에서 임시폴더를 참조하는 것이 가능하지 않을 수도있다.
업로드한 파일의 정확한 콘트롤을 위해 파일위치를 관리자가 원하는 곳으로 옮긴다.


move_uploaded_file() 함수를 활용한다.


move_uploaded_file(String $filename, String $destination)
$filename : 업로드된 파일명
$destination : 파일이 이동할 위치


파일위치 변경이 성공하면 move_uploaded_file 함수는 true를 반환한다. 그렇지 않을 경우 false 를 반환.


<?php
$dir = ‘images/‘;
foreach($_FILES[’pictures’][’error’] as $key=>$error)
{
    if($error==‘UPLOAD_ERR_OK)
    {
        $tmp_name = $_FILES[’pictures’][’tmp_name’][$key];
        $name = $_FILES[’pictures’][’name’][$key];
        move_loaded_file( $tmp_name, $dir.$name );
    }
}
?>


참조 : http://php.net/manual/zh/function.move-uploaded-file.php