Jednoduchý příklad PHP skriptu pro zobrazení obrázků z určité složky. Tento skript nepotřebuje databázi, protože přímo skenuje obsah složky a zobrazuje všechny soubory s příponou .jpg
, .png
nebo .gif
. Skript umožňuje rovněž nahrání nového obrázku nebo fotografie a je podmíněno zadáním správného hesla. Nezapomeňte vytvořit složku /images/.
Zde je uveden kód, který můžete pojmenovat například názvem index.php
<?php
$dir = 'images/'; // Cesta k složce s obrázky
$password = '123456'; // Heslo pro nahrání souboru
// Kontrola, zda byl formulář odeslán
if(isset($_POST['submit'])) {
if ($_POST['password'] == $password) { // Kontrola hesla
$target_file = $dir . basename($_FILES["fileToUpload"]["name"]);
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Kontrola, zda je soubor obrázek
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "Soubor ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " byl nahrán.";
} else {
echo "Došlo k chybě při nahrávání souboru.";
}
} else {
echo "Soubor není obrázek.";
}
} else {
echo "Nesprávné heslo.";
}
}
// Načtení všech souborů ve složce
$files = scandir($dir);
echo '<div class="gallery">';
foreach($files as $file) {
// Kontrola, zda je soubor obrázek
if(preg_match('/.jpg$|.png$|.gif$/i', $file)) {
echo '<a href="'.$dir.$file.'"><img src="'.$dir.$file.'" alt="'.$file.'" width="200" height="200"></a>';
}
}
echo '</div>';
?>
<form action="" method="post" enctype="multipart/form-data">
Vyberte obrázek k nahrání:
<input type="file" name="fileToUpload" id="fileToUpload">
Zadejte heslo:
<input type="password" name="password" id="password">
<input type="submit" value="Nahrát obrázek" name="submit">
</form>
K zobrazení náhledů obrázků můžete využít HTML atribut “width” a “height” pro omezení rozměrů obrázků. Pokud chcete otevřít původní velikost obrázku po kliknutí na náhled, můžete obrázek umístit do odkazu, který odkazuje na obrázek.
V tomto kódu jsem nastavil rozměry obrázků na 200×200 pixelů, ale tyto hodnoty můžete změnit podle svých potřeb. Všimněte si, že obrázek je umístěn v odkazu (<a>
tagu), takže když na něj uživatel klikne, otevře se obrázek v původní velikosti v nové záložce nebo okně prohlížeče. Pokud chcete, aby se obrázek otevřel v nové záložce, můžete do odkazu přidat atribut target="_blank"
.
Tento kód přidává do formuláře pro nahrání obrázku nové textové pole pro zadání hesla. Heslo je definováno na začátku skriptu jako proměnná $password
. Před nahráním souboru kód ověří, zda zadané heslo odpovídá tomuto heslu. Pokud heslo nesouhlasí, kód zobrazí chybovou zprávu a soubor nebude nahrán.
Všimněte si, že tato metoda není bezpečná pro skutečné aplikace, kde je důležitá bezpečnost. Heslo je uloženo jako prostý text přímo v kódu, což by mohlo být snadno zneužito, pokud by někdo získal přístup k tomuto kódu.