move_uploaded_file 함수
(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
move_uploaded_file — 업로드된 파일을 새 위치로 이동합니다.
설명
move_uploaded_file(string $from
, string $to
): bool
이 함수는 from
이 지정한 파일이 유효한 업로드 파일인지 확인합니다(PHP의 HTTP POST 업로드 메커니즘을 통해 업로드되었음을 의미). 파일이 유효하면 to
가 지정한 파일 이름으로 이동합니다.
이러한 종류의 검사는 업로드된 파일로 수행된 작업으로 인해 해당 콘텐츠가 사용자에게 공개되거나 동일한 시스템의 다른 사용자에게도 공개될 가능성이 있는 경우 특히 중요합니다.
매개변수
from
- 업로드된 파일의 파일 이름입니다.
to
- 이동된 파일의 대상입니다.
반환 값
성공하면 true
를 반환합니다.
from
이 유효한 업로드 파일이 아니면 아무 작업도 발생하지 않으며 move_uploaded_file()이 false
를 반환합니다.
from
이 유효한 업로드 파일이지만 어떤 이유로 이동할 수 없는 경우 작업이 발생하지 않고 move_uploaded_file()이 false
를 반환합니다. 또한 경고가 발행됩니다.
Examples
예제 #1 여러 파일 업로드
<?php
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
// basename() may prevent filesystem traversal attacks;
// further validation/sanitation of the filename may be appropriate
$name = basename($_FILES["pictures"]["name"][$key]);
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
?>
노트
참고: move_uploaded_file()은 open_basedir를 인식합니다. 그러나 제한은 from
이 이러한 제한과 충돌할 수 있는 업로드된 파일의 이동을 허용하기 위해 to
경로에만 적용됩니다. move_uploaded_file()은 PHP를 통해 업로드된 파일만 이동할 수 있도록 하여 이 작업의 안전성을 보장합니다.
경고 대상 파일이 이미 있는 경우 덮어씁니다.
기타
- is_uploaded_file() - 파일이 HTTP POST를 통해 업로드되었는지 여부를 알려줍니다.
- rename() - 파일 또는 디렉토리의 이름을 바꿉니다.
- 간단한 사용 예는 파일 업로드 처리를 참조하세요.