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)
12/upload_form.html+12/upload_file.php— basis upload naar een mapupload/.- Voeg restricties toe: maximale grootte, alleen image-types, en wat te doen als de bestandsnaam al bestaat.
- 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
git add 12→ commit → push (geen grote binaries verplicht; .gitignore upload-map mag)- Mail: les 12 klaar of hulp + repo-link