PHP의 move_uploaded_file
함수
move_uploaded_file
함수란?
move_uploaded_file
함수는 PHP에서 업로드된 파일을 임시 경로에서 원하는 디렉토리로 이동시키는 함수입니다. 주로 웹 애플리케이션에서 파일 업로드 시에 사용되며, 보안을 위해 사용자가 업로드한 파일을 임시 디렉토리에서 원하는 디렉토리로 옮기는 데 사용됩니다.
move_uploaded_file
함수의 사용 예시:
$uploadedFile = $_FILES['file']['tmp_name']; // 업로드된 파일의 임시 경로
$destination = 'uploads/' . $_FILES['file']['name']; // 업로드된 파일이 최종적으로 저장될 경로
if (move_uploaded_file($uploadedFile, $destination)) {
echo "파일 업로드에 성공했습니다.";
} else {
echo "파일 업로드에 실패했습니다.";
}
위 예시는 사용자가 업로드한 파일을 uploads/
디렉토리로 이동시키는 예시입니다.
다른 함수와 함께 사용하는 예시:
move_uploaded_file
함수는 주로 is_uploaded_file
함수와 함께 사용됩니다. is_uploaded_file
함수를 사용하여 파일이 실제로 업로드된 파일인지 확인한 후에 move_uploaded_file
함수를 호출합니다.
$uploadedFile = $_FILES['file']['tmp_name'];
$destination = 'uploads/' . $_FILES['file']['name'];
if (is_uploaded_file($uploadedFile)) {
if (move_uploaded_file($uploadedFile, $destination)) {
echo "파일 업로드에 성공했습니다.";
} else {
echo "파일 업로드에 실패했습니다.";
}
} else {
echo "올바른 업로드 파일이 아닙니다.";
}
위 예시는 업로드된 파일이 실제로 업로드된 파일인지 확인한 후에 파일을 이동시키는 예시입니다.
조건문과 반복문과 함께 사용하는 예시:
move_uploaded_file
함수는 조건문과 반복문과 함께 사용하여 여러 파일을 업로드하고 처리하는데 사용됩니다.
$uploadedFiles = $_FILES['files'];
$uploadDirectory = 'uploads/';
$successCount = 0;
foreach ($uploadedFiles['tmp_name'] as $index => $tmpName) {
$fileName = $uploadedFiles['name'][$index];
$destination = $uploadDirectory . $fileName;
if (is_uploaded_file($tmpName)) {
if (move_uploaded_file($tmpName, $destination)) {
echo "{$fileName} 파일 업로드에 성공했습니다.<br>";
$successCount++;
} else {
echo "{$fileName} 파일 업로드에 실패했습니다.<br>";
}
} else {
echo "{$fileName} 파일은 올바른 업로드 파일이 아닙니다.<br>";
}
}
echo "총 {$successCount}개의 파일을 업로드했습니다.";
위 예시는 여러 파일을 업로드하고 업로드 결과를 출력하는 예시입니다.
성능 향상을 위한 팁:
move_uploaded_file
함수는 파일을 이동시키는데 사용되므로 성능에 큰 영향을 미치지 않습니다. 하지만 파일 이동은 파일 시스템 작업이므로 디스크 I/O에 영향을 미치므로, 업로드된 파일의 크기가 크거나 파일 개수가 많은 경우에는 성능을 고려해야 합니다.