Hier finden Sie ein Script mit dem der Besucher Bilder auf die Homepage laden kann.
Das PHP-Script bietet folgende Einstellmöglichkeiten:
Angabe eines Verzeichnisses in das die Bilder hochgeladen werden können und die
Größe des Bildes das maximal hochgeladen werden darf (in Bytes).
Demo:
Das PHP-Script prüft ob eine Datei ausgewählt wurde, ob die Datei das richtige Format
hat und die maximale Dateigröße nicht überschreitet.
Nach erfolgreichen hochladen wird das Bild mit dem Dateinamen und der Dateigröße angezeigt.
Neu
- Die Schreibrechte des Upload-Verzeichnisses werden überprüft.
- Passwortschutz (Optional).
- Angabe der
Mimetypen die hochgeladen werden dürfen.
- Umrechnung der Dateigröße von Bytes in KB (für die Anzeige).
- Der Dateiname und die Dateiendung werden in Kleinbuchstaben umgewandelt.
- Umlaute und Sonderzeichen im Dateinamen werden gefiltert.
- Zu lange Dateinamen werden gekürzt (Länge ist einstellbar).
- Überprüfung der Dateiendung (Dateierweiterung).
- Ist eine Datei mit gleichen Namen bereits vorhanden, wird die hoch geladene Datei, mit dem Namen und einer vierstelligen Zufallszahl, umbenannt oder die vorhandene Datei wird ersetzt.
Quelltext: „
Bilder hochladen”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
<!DOCTYPE html> <html> <head> <title>Bilder hochladen</title> </head> <body>
<fieldset> <legend>Bild hochladen</legend>
<?php /* Bilder hochladen - Version vom: 30.11.2011 - Homepage-Total.de */
// Verzeichnis in das die Bilder hochgeladen // werden sollen (ausgehend von dieser Datei). // Das Verzeichnis benötigt Schreibrechte! $verzeichnis = "bilder/";
// Die Größe des Bildes das maximal // hochgeladen werden darf (in Bytes). $maxgroesse = 1024; // 1024 Bytes = 1 KB (1048576 Bytes = 1 MB) // Umrechner: www.homepage-total.de/tools/umrechner-byte-kilobyte.php
// Angabe der Mimetypen die hochgeladen werden dürfen. // Unter: http://www.homepage-total.de/php/content_types.php // finden Sie eine Liste der Mimetypen. $mimetypen = array( "png" => "image/png", "jpg" => "image/jpeg", "jpg" => "image/pjpeg", "jpeg" => "image/jpeg", "gif" => "image/gif", );
// Maximale Länge des Dateinamens $maxlaenge = 35;
// Eine bereits vorhandene Datei mit gleichen Namen ersetzen (ja/nein) // Bei "nein" wird die Datei mit dem Namen und einer Zufallszahl, umbenannt. $ersetzen = "nein";
// Passwortschutz (ja/nein) $passwortschutz = "nein";
// Passwort $passwort = "user";
echo '<form action="' . $_SERVER["SCRIPT_NAME"] . '" method="post" enctype="multipart/form-data"> Bild auswählen: <input type="file" name="datei" size="25"> <br> Dateiformat: ' . implode(", ", array_unique(array_keys($mimetypen))) . ' - Dateigröße max.: ' . (number_format(($maxgroesse / 1024), 2, ",", ".")) . ' KB <br><br>' . ($passwortschutz == "ja" ? 'Passwort: <input type="password" name="passwort">' : '') . '<input type="hidden" name="MAX_FILE_SIZE" value="' . $maxgroesse . '"> <input type="submit" name="submit" value="Bild hochladen">';
if ($_SERVER["REQUEST_METHOD"] == "POST") { if ($passwortschutz == "ja") { if ($_POST["passwort"] != $passwort) { die('<p>Sie haben keine Berechtigung!</p>'); } } if (is_writeable($verzeichnis)) { if (isset($_FILES["datei"]["name"]) && $_FILES["datei"]["name"] != "") { if ($_FILES["datei"]["error"] === UPLOAD_ERR_OK) { if (is_uploaded_file($_FILES["datei"]["tmp_name"])) { if ($_FILES["datei"]["size"] <= $maxgroesse) { $array = explode(".", basename($_FILES["datei"]["name"])); $dateiendung = strtolower(end($array)); if (in_array($dateiendung, array_keys($mimetypen))) { if (in_array($_FILES["datei"]["type"], $mimetypen)) { $dateiname = preg_replace("/[^a-z0-9_-]/", "", strtolower(strtr($array[0], "äöüß", "aous"))); $neuername = substr($dateiname, 0, $maxlaenge) . "." . $dateiendung; if (file_exists($verzeichnis . $neuername)) { if ($ersetzen == "ja") { unlink($verzeichnis . $neuername); } else { $neuername = substr($dateiname, 0, ($maxlaenge - 5)) . "_" . mt_rand(1, 9999) . "." . $dateiendung; } } if (move_uploaded_file($_FILES["datei"]["tmp_name"], $verzeichnis . $neuername)) { echo '<p>Die Datei wurde erfolgreich hochgeladen<br> <img src="' . $verzeichnis . $neuername . '">'; echo ' <br>' . $neuername . ' - ' . number_format(($_FILES["datei"]["size"] / 1024), 2, ",", ".") . ' KB</p>'; } else { echo '<p>Beim hochladen der Datei „' . $_FILES["datei"]["name"] . '” ist leider ein Fehler aufgetreten!</p>'; } } else { echo '<p>Ungültiger Mimetyp: "' . $_FILES["datei"]["type"] . '"!</p>'; } } else { echo '<p>Das Dateiformat: "' . $dateiendung . '" ist nicht erlaubt!</p>'; } } else { echo '<p>Die Datei „' . $_FILES["datei"]["name"] . '” ist mit ' . number_format(($_FILES["datei"]["size"] / 1024), 2, ",", ".") . ' KB leider zu groß!</p>'; } } } } else { echo '<p>Bitte wählen Sie eine Datei aus!</p>'; } } else { echo '<p>Das Verzeichnis: "' . $verzeichnis . '" besitzt keine Schreibrechte!</p>'; } } echo '</form>'; ?>
</fieldset>
</body> </html>
|
Große Dateien hochladen
Um das "
Upload-Limit" des Servers zu ermitteln, führen Sie einfach
<?php echo ini_get('upload_max_filesize'); ?> aus.
Die erscheinende Zahl (z.B.:
10M) zeigt dann die maximal erlaubte Größe an.
• Manuelle Diashow
Natürlich möchte man die Bilder auf seiner Homepage auch anzeigen.
Dafür eignet sich das folgende PHP-Script, dieses zeigt eine Link-, und Formular-
Navigation an. Darin kann man nun über Links vorwärts oder zurück navigieren oder
durch die Eingabe einer Zahl direkt zum Bild gehen. Dieses Script lässt sich als eine Art „Diashow” nutzen.
Demo:
Bei diesen Bildern handelt es sich nicht um die im oberen Demo hochgeladenen Dateien!
Quelltext: „
Bilder anzeigen”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
<!DOCTYPE html> <html> <head> <title>Bilder anzeigen</title> </head> <body style="text-align: center;">
<?php /* Bilder anzeigen - 04.08.2011 - Homepage-Total.de Für dieses Script wird PHP5 benötigt. */
// Verzeichnis eintragen. // Das Verzeichnis darf nur Bilder enthalten. $verzeichnis = "bilder/";
$bilder = array_slice(scanDir($verzeichnis), 2);
$anzahl = count($bilder); $seite = isset($_GET["seite"]) ? (int)$_GET["seite"] : 1;
// Link-, und Formular-Navigation echo '<form action="" method="get" autocomplete="off">Bild: ' . (($seite - 1) > 0 ? '<a href="?seite=' . ($seite - 1) . '">←</a>' : " ") . ' <input type="text" value="' . $seite . '" name="seite" size="3" onclick="this.select()"> von ' . $anzahl . (($seite + 1) <= $anzahl ? ' <a href="?seite=' . ($seite + 1) . '">→</a>' : " ") . '</form>';
foreach ($bilder as $zaehler => $element) { if (($zaehler + 1) == $seite) { echo '<p><img src="' . $verzeichnis . $element . '"><br>' . $element . '</p>'; } } ?>
</body> </html>
|
Herunterladen: bilder_hochladen_und_anzeigen.zip
bilder_hochladen_und_anzeigen.zip
Version vom: 27.11.2011
Dateigröße: 3 KB
Dateien: 2
bilder_anzeigen.php - 1 KB - 27.11.11
bilder_hochladen.php - 3,9 KB - 27.11.11
• Manuelle Diashow mit Vorschaubilder
Eine weitere Version, diese erstellt automatisch Vorschaubilder (
Thumbnails) der Bilder.
Voraussetzung ist eine installierte GD-Grafikbibliothek auf dem Webserver.
Herunterladen: bilder_anzeigen_thumbnail.zip
bilder_anzeigen_thumbnail.zip
Version vom: 26.03.2012
Dateigröße: 5,2 KB
Dateien: 4
bilder_anzeigen.php - 2,9 KB - 26.03.12
details.php - 457 Byte - 26.03.12
bilder_hochladen.php - 3,7 KB - 26.03.12
einstellungen.php - 1,2 KB - 25.01.12