Studijní portál OA Znojmo Studijní portál OA Znojmo
  • Úvod
  • Základy informatiky
    • 1. Základní pojmy informatiky
    • 2. Předchůdci počítačů
    • 3. Počítač obecně
    • 4. Hardware
    • 5. Operační systémy
    • 6. Klávesové zkratky
    • 7. E-mailová komunikace
    • 8. Internet jako základní pojem informatiky
    • 9. Organizace dat v počítači
  • HTML + CSS
    • Zajímavé odkazy k HTML a CSS
    • Soubor .htaccess
  • JavaScript
    • Ochrana proti SPAMu pomocí JavaScriptu
    • Filtrování dat v tabulce
  • PHP
    • 1. Úvod do PHP
    • 2. Datové typy v PHP
    • 3. Podrobné výpisy v PHP
    • 4. Řetězce v PHP
    • 5. Proměnná v PHP
    • 6. Čísla v PHP
    • 7. Podmínky v PHP
    • 8. Operátory porovnávání hodnot v PHP
    • 9. Logické operace v PHP
    • 10. Cykly v PHP
    • 11. Pole v PHP
    • 12. Funkce v PHP
    • 13. Vložené soubory v PHP
    • 14. PHP a databáze
    • 15. Komunikace PHP s databází
    • 16. Formuláře v PHP
    • 17. BMI – příklad k formulářům v PHP
    • 18. Jednoduchá návštěvní kniha v PHP
    • 19. Články v databázi přes PHP
    • 20. Session v PHP
    • 21. Počítadlo přístupů v PHP
    • 23. Datum a čas v PHP česky
    • 24. Odesílání zpráv na email v PHP
    • 25. Jak na aktivní položky menu v PHP
    • 26. Jak nahrát soubor na server
  • Grafika
    • Základní typy grafických souborů
    • Základní pojmy (témata) grafiky
    • Barevné modely
    • Zajímavé odkazy pro grafiku
  • Různé
    • Kolik stojí hodina práce webmastera na volné noze?
    • Kancelářské programy
    • Odkazy na zajímavé weby
Studijní portál OA Znojmo Studijní portál OA Znojmo
  • Úvod
  • Základy informatiky
    • 1. Základní pojmy informatiky
    • 2. Předchůdci počítačů
    • 3. Počítač obecně
    • 4. Hardware
    • 5. Operační systémy
    • 6. Klávesové zkratky
    • 7. E-mailová komunikace
    • 8. Internet jako základní pojem informatiky
    • 9. Organizace dat v počítači
  • HTML + CSS
    • Zajímavé odkazy k HTML a CSS
    • Soubor .htaccess
  • JavaScript
    • Ochrana proti SPAMu pomocí JavaScriptu
    • Filtrování dat v tabulce
  • PHP
    • 1. Úvod do PHP
    • 2. Datové typy v PHP
    • 3. Podrobné výpisy v PHP
    • 4. Řetězce v PHP
    • 5. Proměnná v PHP
    • 6. Čísla v PHP
    • 7. Podmínky v PHP
    • 8. Operátory porovnávání hodnot v PHP
    • 9. Logické operace v PHP
    • 10. Cykly v PHP
    • 11. Pole v PHP
    • 12. Funkce v PHP
    • 13. Vložené soubory v PHP
    • 14. PHP a databáze
    • 15. Komunikace PHP s databází
    • 16. Formuláře v PHP
    • 17. BMI – příklad k formulářům v PHP
    • 18. Jednoduchá návštěvní kniha v PHP
    • 19. Články v databázi přes PHP
    • 20. Session v PHP
    • 21. Počítadlo přístupů v PHP
    • 23. Datum a čas v PHP česky
    • 24. Odesílání zpráv na email v PHP
    • 25. Jak na aktivní položky menu v PHP
    • 26. Jak nahrát soubor na server
  • Grafika
    • Základní typy grafických souborů
    • Základní pojmy (témata) grafiky
    • Barevné modely
    • Zajímavé odkazy pro grafiku
  • Různé
    • Kolik stojí hodina práce webmastera na volné noze?
    • Kancelářské programy
    • Odkazy na zajímavé weby
  1. Jste zde:  
  2. PHP

26. Jak nahrát soubor na server

Základní údaje
Kategorie: PHP
Zobrazení: 594

Nahrávání souborů přes webovou stránku má dvě části:

  1. samotné zobrazení formulářového prvku pro nahrání souboru(ů) - jednoduchý HTML kód
  2. zpracování souboru(ů) a uložení na server - složitější část (PHP script)

Dnes (rok 2024) můžeme využít některý z nástrojů chytré inteligence, abychom si nechali kompletní fungování vygenerovat. Např. Copilot od Microsoftu. Pro vygenerování zadáme např. požadavek v tomto provedení: "Vytvoř mi PHP script na nahrávání obrázků a jejich zobrazení. Script nesmí používat databázi. Vložené fotografie poskládej do galerie tak, aby měly náhledy rozměr 200px x 200px. Využij na galerii JavaScript, např. Lightbox2 nebo podobné." Copilot vygeneroval např. tento kód:

<?php
// Nastavení cílového adresáře pro nahrané soubory
$target_dir = "uploads/";
if (!is_dir($target_dir)) {
    mkdir($target_dir, 0777, true);
}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
    $uploadOk = 1;
    $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));

    // Kontrola, zda je soubor skutečně obrázek
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if ($check !== false) {
        echo "Soubor je obrázek - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "Soubor není obrázek.";
        $uploadOk = 0;
    }

    // Kontrola, zda soubor již existuje
    if (file_exists($target_file)) {
        echo "Soubor již existuje.";
        $uploadOk = 0;
    }

    // Povolení pouze určitých formátů souborů
    if ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif") {
        echo "Povoleny jsou pouze JPG, JPEG, PNG a GIF soubory.";
        $uploadOk = 0;
    }

    // Kontrola, zda je $uploadOk nastaven na 0 kvůli chybám
    if ($uploadOk == 0) {
        echo "Soubor nebyl nahrán.";
    } else {
        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
            echo "Soubor " . htmlspecialchars(basename($_FILES["fileToUpload"]["name"])) . " byl úspěšně nahrán.";
        } else {
            echo "Při nahrávání souboru došlo k chybě.";
        }
    }
}

// Zobrazení nahraných obrázků
$files = glob($target_dir . "*.{jpg,jpeg,png,gif}", GLOB_BRACE);
foreach ($files as $file) {
    echo '<a href="' . $file . '" data-lightbox="gallery"><div class="thumbnail" style="background-image: url('/. $file .');"></div></a>';
}
?>

<!DOCTYPE html>
<html lang="cs">
<head>
    <meta charset="UTF-8">
    <title>Nahrávání obrázků</title>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.4/css/lightbox.min.css" rel="stylesheet">
    <style>
        .thumbnail {
            width: 200px;
            height: 200px; /* Poměr stran 1:1 */
            background-size: cover;
            background-position: center;
            margin: 10px;
            display: inline-block;
        }
    </style>
</head>
<body>
    <form action="" method="post" enctype="multipart/form-data">
        Vyberte obrázek k nahrání:
        <input type="file" name="fileToUpload" id="fileToUpload">
        <input type="submit" value="Nahrát obrázek" name="submit">
    </form>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.4/js/lightbox.min.js"></script>
</body>
</html>

Někdy je robotem vygenerován jiný kód nebo také chybný. Zkuste si sami postupně zadávat různé požadavky a sledovat výsledek vygenerovaného kódu.

Strana 5 z 5

  • 1
  • 2
  • 3
  • 4
  • 5

Vyhledávání

Reklamní blok

Rychlé odkazy

  • Webové stránky školy
  • Moodle GPOA Znojmo
  • Office 365
  • Bakaláři GPOA Znojmo
© Studijní portál OA Znojmo 2025, vytvořil Portal70.cz.
  • Úvod
  • Základy informatiky
    • 1. Základní pojmy informatiky
    • 2. Předchůdci počítačů
    • 3. Počítač obecně
    • 4. Hardware
    • 5. Operační systémy
    • 6. Klávesové zkratky
    • 7. E-mailová komunikace
    • 8. Internet jako základní pojem informatiky
    • 9. Organizace dat v počítači
  • HTML + CSS
    • Zajímavé odkazy k HTML a CSS
    • Soubor .htaccess
  • JavaScript
    • Ochrana proti SPAMu pomocí JavaScriptu
    • Filtrování dat v tabulce
  • PHP
    • 1. Úvod do PHP
    • 2. Datové typy v PHP
    • 3. Podrobné výpisy v PHP
    • 4. Řetězce v PHP
    • 5. Proměnná v PHP
    • 6. Čísla v PHP
    • 7. Podmínky v PHP
    • 8. Operátory porovnávání hodnot v PHP
    • 9. Logické operace v PHP
    • 10. Cykly v PHP
    • 11. Pole v PHP
    • 12. Funkce v PHP
    • 13. Vložené soubory v PHP
    • 14. PHP a databáze
    • 15. Komunikace PHP s databází
    • 16. Formuláře v PHP
    • 17. BMI – příklad k formulářům v PHP
    • 18. Jednoduchá návštěvní kniha v PHP
    • 19. Články v databázi přes PHP
    • 20. Session v PHP
    • 21. Počítadlo přístupů v PHP
    • 23. Datum a čas v PHP česky
    • 24. Odesílání zpráv na email v PHP
    • 25. Jak na aktivní položky menu v PHP
    • 26. Jak nahrát soubor na server
  • Grafika
    • Základní typy grafických souborů
    • Základní pojmy (témata) grafiky
    • Barevné modely
    • Zajímavé odkazy pro grafiku
  • Různé
    • Kolik stojí hodina práce webmastera na volné noze?
    • Kancelářské programy
    • Odkazy na zajímavé weby