PHP - PDF-Dateien aus einer Auswahlliste hochladen
![[Bildschirmfoto]
PDF-Dateien aus einer Auswahlliste hochladen [Bildschirmfoto]
PDF-Dateien aus einer Auswahlliste hochladen](img/pdf-dateien_aus_einer_auswahlliste_hochladen.png)
Der Benutzer wählt die Datei (Preislisten, Beitrittsformulare, Geschäftsordnung, ...), aus einer Auswahlliste aus die er ersetzen möchte. Dann wählt er die Datei von seinem lokalen Rechner aus, diese wird dann nach dem absenden mit PHP gegebenenfalls umbenannt (je nach Auswahl) und in das entsprechende Verzeichnis kopiert.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>Datei hochladen</title>
<style>
body {
font-family: Verdana, Arial, Sans-Serif;
}
a:link, a:visited {
color: Royalblue;
}
</style>
</head>
<body>
<form method="post" enctype="multipart/form-data">
<fieldset>
<legend>Datei hochladen</legend>
<p>
<label>Art der Datei:
<select name="art" required="required">
<option></option>
<option value="preisliste1.pdf">Preisliste 1</option>
<option value="preisliste2.pdf">Preisliste 2</option>
<option value="beitrittsformular.pdf">Beitrittsformular</option>
<option value="geschaeftsordnung.pdf">Geschäftsordnung</option>
</select>
</label>
</p>
<p>
<label>Datei:
<input type="file" name="datei" required="required"></label>
</p>
<p>
<label>Passwort: <input type="password" name="passwort" required="required"></label> -
<input type="submit" value="Datei hochladen">
</p>
<?php
/* PDF-Datei hochladen mit Auswahlliste
und Passwortschutz */
// Passwort
$password = "0000";
// In dieses Verzeichnis werden die PDF-Dateien verschoben,
// ausgehend von dem akt. Verz. in dem diese Datei liegt.
$directory = "pdf/"; // Mit Schrägstrich / am Ende!
// Angabe des Mimetypen
$mimeType = ["pdf" => "application/pdf"];
// Ein Fehler
$error = [];
// Formular wurde abgesendet
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Passwort überprüfen
if ($_POST["passwort"] == $password) {
// Verzeichniss vorhanden
if (!file_exists($directory))
$error[] = 'Das Verzeichnis: "' . $directory . '" ist nicht vorhanden!';
// Schreibrechte gesetzt
if (!is_writeable($directory))
$error[] = 'Das Verzeichnis: "' . $directory . '" besitzt keine Schreibrechte!';
// Fehler beim hochladen
if ($_FILES["datei"]["error"])
$error[] = 'Fehler beim hochladen: ' . $_FILES["datei"]["error"];
// Datei wurde in temporäres Verz. hochgeladen
if (is_uploaded_file($_FILES["datei"]["tmp_name"])) {
// Infos über die Datei holen
$path = pathinfo($_FILES["datei"]["name"]);
$extension = strtolower($path["extension"]);
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$finfoMimeType = finfo_file($finfo, $_FILES["datei"]["tmp_name"]);
finfo_close($finfo);
// Dateiformat überprüfen
if (!in_array($finfoMimeType, $mimeType) ||
!in_array($_FILES["datei"]["type"], $mimeType) ||
!in_array($extension, array_keys($mimeType)))
$error[] = 'Falsches Dateiformat, erlaubt ist nur das PDF-Dateiformat!';
// Dateinamen vergleichen
// if ($_POST["art"] != $_FILES["datei"]["name"])
// $error[] = 'Falscher Dateiname!';
// Kein Fehler!
if (count($error) == 0) {
// Umbenennen
$newName = $_POST["art"];
// Datei verschieben
if (move_uploaded_file($_FILES["datei"]["tmp_name"], $directory . $newName)) {
if (file_exists($directory . $newName)) {
echo '<p>Die Datei: <a href="' . $directory . $newName . '" target="_blank">' .
$newName . '</a> wurde erfolgreich hochgeladen</p>';
}
}
}
else {
echo '<p>' . implode('<br>✘ ', $error) . '</p>';
}
}
}
else {
echo '<p>Das Passwort ist falsch!</p>';
}
}
?>
</fieldset>
</form>
</body>
</html>
Bausteine Alle Anzeigen
Eine zufällige Auswahl von Codeschnipseln
aus den Bereichen
HTML, CSS,
PHP, JavaScript und
MySQL.
<legend> Gruppenüberschrift
CSS - Externe URL des Hyperlinks sichtbar machen
PHP - Header mit absoluter URL senden