Pondělí , 23 Červen 2025
PHPProgramování

Upload PHP skript

blank
blank

Tento skript umožňuje uživatelům nahrávat soubory na server. Kontroluje, zda je nahrávaný soubor obrázek, zda již neexistuje soubor se stejným názvem a zda nahrávaný soubor není příliš velký. Přijímá pouze obrázky ve formátu JPG, JPEG, PNG nebo GIF.

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
  Vyberte soubor k nahrání:
  <input type="file" name="fileToUpload" id="fileToUpload">
  <input type="submit" value="Nahrát soubor" name="submit">
</form>

</body>
</html>

Následný skript upload.php by mohl vypadat následovně:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// Kontrolujeme, jestli je soubor obrázek
if(isset($_POST["submit"])) {
  $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;
  }
}

// Kontrolujeme, jestli soubor již existuje
if (file_exists($target_file)) {
  echo "Omlouváme se, soubor již existuje.";
  $uploadOk = 0;
}

// Kontrolujeme velikost souboru
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Omlouváme se, váš soubor je příliš velký.";
  $uploadOk = 0;
}

// Povolíme pouze určité formáty obrázků
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "Omlouváme se, jsou povoleny pouze soubory JPG, JPEG, PNG & GIF.";
  $uploadOk = 0;
}

// Kontrolujeme, jestli bylo nahrávání úspěšné
if ($uploadOk == 0) {
  echo "Omlouváme se, váš soubor nebyl nahrán.";
} else {
  if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    echo "Soubor ". basename( $_FILES["fileToUpload"]["name"]). " byl úspěšně nahrán.";
  } else {
    echo "Omlouváme se, nastala chyba při nahrávání vašeho souboru.";
  }
}
?>

Pozor, tento skript je velmi jednoduchý a slouží pouze k demonstraci. Skutečný nahrávací skript by měl obsahovat daleko více kontrol a bezpečnostních opatření. Například:

  1. Validace dat: Kromě kontroly velikosti souboru a typu souboru by měl být skript schopen zkontrolovat, zda soubor neobsahuje potenciálně škodlivý obsah.

  2. Omezení přístupu: Skript by měl zajistit, že soubory mohou nahrávat pouze oprávnění uživatelé. To může zahrnovat přihlašovací proces a kontrolu oprávnění.

  3. Manipulace s nahrávanými soubory: Skript by měl obsahovat logiku pro manipulaci s nahrávanými soubory, například pro změnu velikosti obrázků nebo konverzi formátů souborů.

  4. Chybové zprávy: Skript by měl informovat uživatele o potížích při nahrávání souborů pomocí jasných a uživatelsky přívětivých chybových zpráv.

  5. Bezpečnost: Bezpečnost je vždy nezbytná, když se pracuje s nahráváním souborů. Skript by měl zahrnovat opatření pro ochranu proti útokům, jako je například útok typu „File Upload Vulnerability“.

Jedná se o velmi základní skript a neobsahuje žádnou validaci dat nebo kontrolu chyb, takže jej v reálném světě pravděpodobně nebudete chtít používat bez dalších úprav. Je také důležité si uvědomit, že nahrávání souborů na server může představovat bezpečnostní riziko, pokud není řádně zabezpečeno.

Zanechte komentář

Napsat komentář

Související články

blank
ProgramováníStrojové učeníUmělá inteligence

Neuromorfní čipy vs. GPU/TPU

Top články Neuromorfní čipy vs. GPU/TPU 19. 6. 2025 Edge-AI v IoT:...

blank
ProgramováníPython

MIDI generator in Python

Description of the Python ScriptThis Python script generates a MIDI file based...

blank
PHPWordPress

AI Birthday Wishes Generator WordPress Plugin

The  AI Birthday Wishes Generator is a  WordPress plugin that allows users to generate personalized birthday wishes...

blank
PHPProgramováníWordPress

AI Song Maker WordPress Plugin

The  AI Song Maker is a  WordPress plugin that allows you to generate custom songs based on...