Werner-Zenk.de - Zur Startseite

PHP - PDF-Dateien aus einer Auswahlliste hochladen

[Bildschirmfoto] 
PDF-Dateien aus einer Auswahlliste hochladen
PDF-Dateien aus einer Auswahlliste hochladen

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($extensionarray_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>&#10008; '$error) . '</p>';
   }
  }
 }
 else {
  echo 
'<p>Das Passwort ist falsch!</p>';
 }
}
?>

 </fieldset>
</form>

</body>
</html>

Bausteine

Eine zufällige Auswahl von „Bausteinen” aus den Bereichen CSS, PHP, JavaScript und MySQL.

CSS - Aufzählungslisten einfärben

PHP - Verzeichnisgröße auslesen

JavaScript - Eingabefeld selektieren

MySQL - Doppelte Einträge in der Tabelle finden