현재 위치: > 최신 기사 목록> 파일을 업로드 할 때 IS_DIR 함수로 디렉토리의 존재를 확인하는 방법

파일을 업로드 할 때 IS_DIR 함수로 디렉토리의 존재를 확인하는 방법

gitbox 2025-05-28

1. 기본 사용

is_dir () 의 구문은 매우 간단합니다.

 bool is_dir(string $filename)

문자열 매개 변수 $ filename을 허용하여 부울 값을 반환합니다. 경로가 존재하고 디렉토리 인 경우 true 를 반환하십시오. 그렇지 않으면 false 를 반환합니다.


2. 파일과 함께 업로드 및 사용의 예

업로드 된 파일을 업로드/ 문서/ 디렉토리에 저장하려면 파일을 업로드하기 전에 디렉토리가 존재하는지 확인해야합니다.

 <?php
$uploadDir = 'uploads/documents/';

if (!is_dir($uploadDir)) {
    // 디렉토리가 존재하지 않는 경우,그냥 만들려고 노력하십시오
    if (!mkdir($uploadDir, 0755, true)) {
        die('업로드 디렉토리를 만들 수 없습니다');
    }
}

// 프로세스 파일 업로드
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
    $tmpName = $_FILES['file']['tmp_name'];
    $filename = basename($_FILES['file']['name']);
    $destination = $uploadDir . $filename;

    if (move_uploaded_file($tmpName, $destination)) {
        echo '파일 업로드를 성공적으로 업로드하십시오:' . htmlspecialchars($destination);
    } else {
        echo '파일 이동이 실패했습니다';
    }
} else {
    echo '업로드 중에 오류가 발생했습니다';
}
?>

이 코드의 핵심은 다음과 같습니다.

  1. IS_DIR ()을 사용하여 대상 업로드 디렉토리가 존재하는지 확인하십시오.

  2. 존재하지 않으면 mkdir ()를 사용하여 디렉토리를 재귀 적으로 만듭니다.

  3. 파일이 성공적으로 업로드 된 후 Move_Uploaded_File ()을 사용하여 임시 파일을 대상 디렉토리로 이동하십시오.


3. 실제 프로젝트의 경로 사양 제안

실제 프로젝트에서는 __dir__ 또는 $ _server [ 'Document_Root']를 결합하여 상대 경로로 인한 문제를 피하기 위해보다 강력한 경로를 구축 할 수 있습니다.

 $uploadDir = __DIR__ . '/uploads/documents/';

또는:

 $uploadDir = $_SERVER['DOCUMENT_ROOT'] . '/uploads/documents/';

4. URL과의 조합 (프론트 엔드 디스플레이)

업로드가 성공하면 파일의 URL을 프론트 엔드로 반환해야 할 수도 있습니다. 서버의 도메인 이름이 gitbox.net 이라고 가정하면 다음과 같은 파일 주소를 연결할 수 있습니다.

 $fileUrl = 'https://gitbox.net/uploads/documents/' . urlencode($filename);
echo '파일 업로드,액세스 주소:<a href="' . $fileUrl . '">' . $fileUrl . '</a>';

이러한 방식으로 사용자는 URL을 통해 업로드 된 파일에 직접 액세스 할 수 있습니다.