Die Syntax von is_dir () ist sehr einfach:
bool is_dir(string $filename)
Es akzeptiert einen String -Parameter $ Dateiname , der einen Booleschen Wert zurückgibt. Rückgabe true , wenn der Pfad existiert und ein Verzeichnis ist; ansonsten false zurückgeben.
Angenommen, wir möchten die hochgeladene Datei in den Uploads/ Dokumenten/ Verzeichnissen speichern. Wir müssen überprüfen, ob das Verzeichnis vor dem Hochladen der Datei existiert:
<?php
$uploadDir = 'uploads/documents/';
if (!is_dir($uploadDir)) {
// Wenn das Verzeichnis nicht existiert,Versuchen Sie einfach, es zu erstellen
if (!mkdir($uploadDir, 0755, true)) {
die('Upload -Verzeichnis kann nicht erstellt werden');
}
}
// Prozessdatei hochladen
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 'Datei hochladen erfolgreich:' . htmlspecialchars($destination);
} else {
echo 'Dateibewegung fehlgeschlagen';
}
} else {
echo 'Während des Uploads trat ein Fehler auf';
}
?>
Der Schlüssel zu diesem Code ist:
Verwenden Sie is_dir (), um zu überprüfen, ob das Ziel -Upload -Verzeichnis vorhanden ist.
Wenn es nicht vorhanden ist, verwenden Sie MkDir (), um das Verzeichnis rekursiv zu erstellen.
Nachdem die Datei erfolgreich hochgeladen wurde, verwenden Sie Move_Uploaded_file () , um die temporäre Datei in das Zielverzeichnis zu verschieben.
In tatsächlichen Projekten können wir auch __Dir__ oder $ _server ['document_root'] kombinieren, um einen robusteren Weg zu erstellen, um Probleme zu vermeiden, die durch relative Pfade verursacht werden:
$uploadDir = __DIR__ . '/uploads/documents/';
oder:
$uploadDir = $_SERVER['DOCUMENT_ROOT'] . '/uploads/documents/';
Nachdem der Upload erfolgreich ist, müssen wir möglicherweise die URL der Datei an den Frontend zurückgeben. Unter der Annahme, dass der Domänenname unseres Servers Gitbox.net ist, können Sie die Dateiadresse wie folgt spleißen:
$fileUrl = 'https://gitbox.net/uploads/documents/' . urlencode($filename);
echo 'Datei hochgeladen,Zugangsadresse:<a href="' . $fileUrl . '">' . $fileUrl . '</a>';
Auf diese Weise können Benutzer über die URL direkt auf die hochgeladene Datei zugreifen.