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を介してアップロードされたファイルに直接アクセスできます。