Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /* nastavení: */
- $adresar = 'foto'; // adresář, kam se ukládají fotky (relativní cesta od tohoto skriptu)
- $popisyFotek = 'popisy.ini'; // soubor pro popisky k fotkám
- /*--------------*/
- $adresarCesta = dirname(__FILE__).'/'.trim($adresar, '/'); // absolutní cesty, není potřeba měnit.
- $popisyFotek = dirname(__FILE__).'/'.trim($popisyFotek, '/');
- /* pokud byl odeslaný formulář, uložíme soubor a popisek. */
- if (isset($_POST['upload'])) {
- $chyba = '';
- /* soubor bude uložen pod bezpečným jménem (bez diakritiky, mezer apod.) */
- $noveJmeno = preg_replace('~[^a-z0-9_.-]+~i', '', $_FILES['soubor']['name']);
- /* zjistíme, jestli byl vybraný soubor a nedošlo k chybě při uploadu */
- if ($_FILES['soubor']['error'] !== UPLOAD_ERR_OK) {
- switch ($_FILES['soubor']['error']) {
- case UPLOAD_ERR_INI_SIZE:
- case UPLOAD_ERR_FORM_SIZE:
- $chyba = 'Soubor je příliš velký.';
- break;
- case UPLOAD_ERR_PARTIAL:
- $chyba = 'Soubor se nenahrál celý, zkuste to znova.';
- break;
- case UPLOAD_ERR_NO_FILE:
- $chyba = 'Nebyl vybraný žádný soubor.';
- break;
- default:
- $chyba = 'Při nahrávání souboru došlo k chybě serveru.';
- }
- /* nebyl soubor podvržený? */
- } elseif (! is_uploaded_file($_FILES['soubor']['tmp_name'])) {
- $chyba = 'Při nahrávání souboru došlo k chybě.';
- } elseif (! is_dir($adresarCesta)) {
- $chyba = 'Adresář, kam se mají fotky ukládat, je zadaný chybně.';
- } elseif (! is_writeable($adresarCesta)) {
- $chyba = 'Skript nemá oprávnění ukládat soubory do zvoleného adresáře. Prosím, změňte přístupová práva.';
- } elseif (file_exists($adresarCesta.'/'.$noveJmeno)) {
- $chyba = "Soubor s tímto názvem ($noveJmeno) už na serveru existuje.";
- /* soubor je v pořádku, uložíme ho */
- } else {
- if (move_uploaded_file($_FILES['soubor']['tmp_name'], $adresarCesta.'/'.$noveJmeno)) {
- /* uložení popisu. Pokud soubor .ini neexistuje, skript se ho pokusí vytvořit. */
- if ($_POST['popis'] !== '') {
- $text = 'popisy["'.$noveJmeno.'"] = "'.addslashes($_POST['popis']).'"'."\n";
- if (! file_put_contents($popisyFotek, $text, FILE_APPEND | LOCK_EX)) {
- $chyba = 'Soubor byl uložený v pořádku, ale nepodařilo se uložit jeho popis.';
- }
- }
- } else {
- $chyba = 'Při nahrávání souboru došlo k chybě.';
- }
- }
- echo (!empty($chyba) ? "<p style='color: red;'>$chyba</p>" : "<p>Soubor byl uložen v pořádku.</p>");
- }
- /* Zobrazení uložených obrázků */
- echo '<h2>Nahrané obrázky</h2>';
- /* načteme popisy k obrázkům */
- $data = parse_ini_file($popisyFotek);
- $popisy = $data['popisy'];
- unset($data);
- $d = opendir($adresarCesta);
- while ($d !== false && ($soubor = readdir($d)) !== false) {
- if ($soubor != "." && $soubor != "..") {
- /* pokud k této fotce existuje popis, zobrazíme ho */
- $titulek = (isset($popisy[$soubor]) ? $popisy[$soubor] : 'Popis fotky nebyl zadaný.');
- echo "<a href='$adresar/$soubor' title='$titulek'><img src='$adresar/$soubor' title='$titulek'></a>\n";
- }
- }
- closedir($d);
- /* formulář pro přidávání fotek */
- ?>
- <hr size="1" noshade>
- <h2>Přidejte další obrázek</h2>
- <form action="" method="post" enctype="multipart/form-data">
- <table>
- <tr><td>Zadejte popis obrázku:</td><td><input type="text" name="popis"></td></tr>
- <tr><td colspan="2"><input type="file" name="soubor" accept="image/*"></td></tr>
- <tr><td colspan="2"><input type="hidden" name="upload" value="ok"><input type="submit" value="Nahraj"></td></tr>
- </table>
- </form>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement