現在の位置: ホーム> 最新記事一覧> ファイルをアップロードするときに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を介してアップロードされたファイルに直接アクセスできます。