From c4ff0a23330d577c6edb83ad6a647ebe2e943bee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C5=A0krab=C3=A1nek?= Date: Thu, 4 May 2023 10:26:46 +0200 Subject: [PATCH] File Upload lesson --- uploadfiles/index.php | 22 ++++++++ uploadfiles/list.php | 16 ++++++ uploadfiles/upload.php | 37 +++++++++++++ ...nímek obrazovky 2023-03-01 v 09.24.34.png | Bin 0 -> 18663 bytes uploadfiles/uploads/nk_db.sql | 51 ++++++++++++++++++ uploadfiles/uploads/u447 (1).sql | 51 ++++++++++++++++++ 6 files changed, 177 insertions(+) create mode 100644 uploadfiles/index.php create mode 100644 uploadfiles/list.php create mode 100644 uploadfiles/upload.php create mode 100644 uploadfiles/uploads/Snímek obrazovky 2023-03-01 v 09.24.34.png create mode 100644 uploadfiles/uploads/nk_db.sql create mode 100644 uploadfiles/uploads/u447 (1).sql diff --git a/uploadfiles/index.php b/uploadfiles/index.php new file mode 100644 index 0000000..7fd0d3a --- /dev/null +++ b/uploadfiles/index.php @@ -0,0 +1,22 @@ + + + + + + + + + <?php echo $title;?> + + +

+ +
+ +

+ +
+ + \ No newline at end of file diff --git a/uploadfiles/list.php b/uploadfiles/list.php new file mode 100644 index 0000000..521fa00 --- /dev/null +++ b/uploadfiles/list.php @@ -0,0 +1,16 @@ +"; +foreach ($list1 as $item) { + echo "
  • "; + echo " $item "; + echo "
  • "; +} +echo ""; + +?> \ No newline at end of file diff --git a/uploadfiles/upload.php b/uploadfiles/upload.php new file mode 100644 index 0000000..b79808b --- /dev/null +++ b/uploadfiles/upload.php @@ -0,0 +1,37 @@ + 500000) { + echo "Soubor je příliš veliký"; + $uploadOk = 0; +} + +//ověření na určitý typ souboru +if ($uploadFileType != "sql" && $uploadFileType != "txt") { + echo "nepodporovaný typ souboru"; + $uploadOk = 0; +} + + +//konečná fáze nahrávání +if ($uploadOk == 0) { + echo "
    Nastala chyba při nahrávání"; +} else { + if (move_uploaded_file($_FILES["uploadFile"]["tmp_name"],$target_file)){ + echo "
    Soubor ". htmlspecialchars(basename($_FILES["uploadFile"]["name"])) + . " byl nahrán"; + } + else { + echo "
    Objevila se chyba při nahrávání"; + } +} \ No newline at end of file diff --git a/uploadfiles/uploads/Snímek obrazovky 2023-03-01 v 09.24.34.png b/uploadfiles/uploads/Snímek obrazovky 2023-03-01 v 09.24.34.png new file mode 100644 index 0000000000000000000000000000000000000000..d95fc882a7c3de5cbe1fe5e5df8c1228119486a2 GIT binary patch literal 18663 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 Xr*6TF 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