educom PHP-basis E-learning

Les 12 — Uploads, directories & images

$_FILES, restricties, unieke namen, directory listings — en veilig nadenken over uploads.

In deze les

Wat je gaat doen. Bestand uploaden naar een map, met checks (grootte, type, unieke naam). Extra: directory-listing + thumbnails.

Wat je leert. Een upload is een tijdelijk bestand op de server; jij beslist of het mag blijven.

Komt aan bod. $_FILES, move_uploaded_file, uniqid, opendir / getimagesize.

Demo (concept)

Eenvoudige directory-listing. Niet de upload-opdracht.

Klik een bestand om de bron te zien (of “Nieuwe tab”). PHP draait bij jou lokaal in XAMPP.

Gewone opdracht

Kern (stapsgewijs)

  1. 12/upload_form.html + 12/upload_file.php — basis upload naar een map upload/.
  2. Voeg restricties toe: maximale grootte, alleen image-types, en wat te doen als de bestandsnaam al bestaat.
  3. Gebruik unieke filenaam (uniqid + extensie).

Extra / variant

Extra A Directory listing

Maak 12/read_dir2.php: listing van een map (bouw voort op read_dir1.php).

Extra B — Opdracht 30 Thumbnails

12/read_dir3.php: listing van upload-dir met thumbnail, afmeting, mime-type; klik opent image in nieuw venster. Gebruik getimagesize(). Hergebruik read_dir2-idee.

Extra C Security-notitie

In 12/upload-security.md: welke checks heb je gedaan en wat zou je in productie nog meer doen?

Uitwerking (ná eigen poging)

Upload + restricties (kern) en listing/thumbnails (extra). Eerst zelf bouwen.

Toon uitwerkingen

Klik een bestand om de bron te zien (of “Nieuwe tab”). PHP draait bij jou lokaal in XAMPP.

Opleveren

  1. git add 12 → commit → push (geen grote binaries verplicht; .gitignore upload-map mag)
  2. Mail: les 12 klaar of hulp + repo-link

Door naar les 13 →