is_dir () 의 구문은 매우 간단합니다.
bool is_dir(string $filename)
문자열 매개 변수 $ filename을 허용하여 부울 값을 반환합니다. 경로가 존재하고 디렉토리 인 경우 true 를 반환하십시오. 그렇지 않으면 false 를 반환합니다.
업로드 된 파일을 업로드/ 문서/ 디렉토리에 저장하려면 파일을 업로드하기 전에 디렉토리가 존재하는지 확인해야합니다.
<?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 '업로드 중에 오류가 발생했습니다';
}
?>
이 코드의 핵심은 다음과 같습니다.
IS_DIR ()을 사용하여 대상 업로드 디렉토리가 존재하는지 확인하십시오.
존재하지 않으면 mkdir ()를 사용하여 디렉토리를 재귀 적으로 만듭니다.
파일이 성공적으로 업로드 된 후 Move_Uploaded_File ()을 사용하여 임시 파일을 대상 디렉토리로 이동하십시오.
실제 프로젝트에서는 __dir__ 또는 $ _server [ 'Document_Root']를 결합하여 상대 경로로 인한 문제를 피하기 위해보다 강력한 경로를 구축 할 수 있습니다.
$uploadDir = __DIR__ . '/uploads/documents/';
또는:
$uploadDir = $_SERVER['DOCUMENT_ROOT'] . '/uploads/documents/';
업로드가 성공하면 파일의 URL을 프론트 엔드로 반환해야 할 수도 있습니다. 서버의 도메인 이름이 gitbox.net 이라고 가정하면 다음과 같은 파일 주소를 연결할 수 있습니다.
$fileUrl = 'https://gitbox.net/uploads/documents/' . urlencode($filename);
echo '파일 업로드,액세스 주소:<a href="' . $fileUrl . '">' . $fileUrl . '</a>';
이러한 방식으로 사용자는 URL을 통해 업로드 된 파일에 직접 액세스 할 수 있습니다.