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  Alle Anzeigen

Eine zufällige Auswahl von Codeschnipseln aus den Bereichen HTML, CSS, PHP, JavaScript und MySQL.

<section> Abschnitt

CSS - Vertikaler Text mit horizontalen Buchstaben

PHP - Wochennamen ausgeben

JavaScript - HTML 5 - Pflichtfeld setzen mit JavaScript

MySQL - Text in einer Spalte austauschen

Zu viele Werbebanner
Es bringt nichts, Webseiten von oben bis unten mit Werbe-Banner zuzupflastern. Um mit Werbung ernsthaft Geld zu verdienen, braucht man ein paar tausend Besucher im Monat. Deshalb kann in den meisten Fällen auf Banner verzichtet werden. Falls man es trotzdem versuchen möchte, sollte man nur ein oder zwei Banner pro Seite verwenden, diese dann aber prominent platzieren.
Stellen Sie Sich vor jemand hat auf seiner Startseite 10 Werbebanner, der Besucher sucht vergeblich nach dem Eingang. Nicht unwahrscheinlich, dass ein Banner davon interessanter ist (...und der Besucher ist weg.)

Die Frage der Werbung wird im Übrigen heiß diskutiert. War sich die Internet-Gemeinde noch vor Kurzem einig in der Ablehnung jeglicher Kommerzialisierung, so gibt es in letzter Zeit auch entgegengesetzte Strömungen - und das nicht von Seiten der Konzerne. Klar ist jedenfalls, dass viele Angebote im Internet nur deshalb kostenlos sind, weil sie mit Werbung finanziert werden!