[php]move_uploaded_file

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에 영향을 미치므로, 업로드된 파일의 크기가 크거나 파일 개수가 많은 경우에는 성능을 고려해야 합니다.


게시됨

카테고리

,

작성자